Hibernate框架学习1】的更多相关文章

MySQL的事务.JDBC事务操作: 详细见这篇文章:比较详细 http://www.cnblogs.com/xuyiqing/p/8430214.html 如何在hibernate中配置隔离级别: 再核心配置文件中: <!-- 指定hibernate操作数据库时的隔离级别 #hibernate.connection.isolation 1|2|4|8 0001 1 读未提交 0010 2 读已提交 0100 4 可重复读 1000 8 串行化 --> <property name=&q…
Configuration对象: package api; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.junit.Test; //学习Configuration对象 // Configuration功能: 配置加载类.用于加载主配置,orm元数据加载 public class Demo { @Test public void fun1(){ //1 创建,调用空参…
一.Hibernate持久化类的编写规范 1.什么是持久化类 Hibernate是持久层的ORM影射框架,专注于数据的持久化工作.所谓持久化,就是将内存中的数据永久存储到关系型数据库中.那么知道了什么是持久化,什么又是持久化类呢?其实所谓的持久化类指的是一个Java类与数据库表建立了映射关系,那么这个类称为是持寺久化类.其实可以简单的理解为持久化类就是一个Java类有了一个映射文件与数据库的表建立了关系.那么我们在编写持久化类的时候有哪些要求呢?接下来我们来看一下: 2.持久化类的编写规则(应该…
一.表关系的分析 Hibernate框架实现了ORM的思想,将关系数据库中表的数据映射成对象,使开发人员把对数据库的操作转化为对对象的操作,Hibernate的关联关系映射主要包括多表的映射配置.数据的增加.删除等. 数据库中多表之间存在着三种关系,也就是系统设计中的三种实体关系.如图所示. 从图可以看出,系统设计的三种实体关系分别为:多对多.一对多和一对一关系.在数据库中实体表之间的关系映射是采用外键来描述的,具体如下. 1.1 表与表的三种关系 ●  一对多 建表原则:再多的一方创建外键指向…
hibernate框架技术重点学习笔记 1.针对不同的数据库,有不同的数据库实现类,使其符号对应的数据库? mysqlDaoImpl oracleDaoImpl ... ... 2.对象和表记录的转换存在着转换问题->orm,对象和关系的一种映射 3.框架:解决一种问题的方案集合! 4..配置文件 Xxx.cfg.xml  主配置文件 xxx.hbm.xml映射文件: 映射基础 普通属性 主键 集合属性 关联关系:一对多  多对一 多对多  一对一 继承结构 5.其他特性:数据库连接池  懒加载…
实体类: package domain; public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cust_level; private String cust_linkman; private String cust_phone; private String c…
hibernate框架属于dao层,类似dbutils的作用,是一款ORM(对象关系映射)操作 使用hibernate框架好处是:操作数据库不需要写SQL语句,使用面向对象的方式完成 这里使用eclipse工具搭建: 官网下载:https://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/ 下载.zip文件后解压: lib文件夹下的required文件夹内的jar包为必须包: 另外还需要MySQL的驱动包:…
一.JavaEE开发三层结构和三大框架的对应关系: Struts2框架 -> 表现层 web层(MVC是表现层的设计模型) 业务层 service层 Hibernate框架 -> 持久层 dao层 Spring框架 ->综合类框架 二.持久层技术有哪些: JDBC:操作数据库最底层的方式 优势:底层.效率高 弊端:编写代码时比较繁琐,尤其是封装结果集 DBUtils:基于JDBC进行了简单封装 优势:封装结果集操作变得简单,并且仍然是自己编写SQL语句,相对效率没有太大影响 弊端:要求实…
ConfigurationSessionFactorySessionTransactionQueryCriteria Configuration Configuration对象用于封装Hibernate的配置信息,在Hibernate框架启动后,需要装载对应的配置文件.Hibernate的配置文件有两种格式hibernate.properties文件(早期格式)hibernate.cfg.xml文件(常用格式) 使用hibernate.properties加载配置 Configuration c…
  Hibernate 是一个 JDO( Java Data Objects)工具.它的工作原理是通过文件把值对象(Java对象)和 数据库表之间建立起一个映射关系,还提供数据查询和获取数据的方法.   配置 Hibernate 框架 配置 Hibernate 框架,需要三个准备,七个步骤. 准备一.导入 Hibernate 库 准备二.添加配置文件 hibernate.cfg.xml 准备三.添加映射文件 UserInfo.hbm.xml 步骤一.创建 Configuration 步骤二.创建…
什么是hibernate框架? 1.它是应用在javaee 三层架构中的dao层 它的底层就是JDBC 它对JDBC进行了封装,好处就是不用写jdbc的代码,和sql语句,它是一个开源的轻量级框架,现在使用hibernate5.x版本 入门使用: 1. 导入hibernate所需要的jar文件 2.创建实体类  (User类 例:com.bin.User) 3.在com.bin.User 这个包中 创建相对应的xml文件 (User.hbm.xml) <?xml version="1.0&…
一.Configuration对象 功能:配置加载类,用于加载主配置,orm元数据加载. //1.创建,调用空参构造(还没有读配置文件) Configuration conf=new Configuration(); //2.读取指令配置文件=>空参加载方法,加载src下的hibernate.cfg.xml文件 conf.configure(); //3.读取指定orm元数据(扩展),如果主配置中已经引入映射配置,不需要手动加载 //conf.addResource(resourceName);…
一.框架是什么 1.框架是用来提高开发效率的 2.封装好了一些功能,我们需要使用这些功能时,调用即可,不需要手动实现 3.框架可以理解成一个半成品的项目,只要懂得如何驾驭这些功能即可 二.hibernate框架是什么 三.hibernate 1.操作数据库的时候,可以以面向对象的方式来完成,不需要书写SQL语句 2.hibernate是一款orm框架 1)orm:object relating mapping.对象关系映射 2) 3)orm分4级 hibernate属于4级:完全面向对象操作数据…
     前面的相关文章中,我们已经介绍了使用XML配置文件映射实体类及其各种类型的属性的相关知识.然而不论是时代的潮流还是臃肿繁杂的配置代码告诉我们,注解配置才是更人性化的设计,于是学习了基本的映射实体类的基本注解,此处做一点总结,后续文章将陆续更新使用注解的方式管理配置各种映射关联关系.本篇主要涉及以下内容: 使用最基本的注解映射一个实体类 使用注解映射属性 使用注解映射主键 其他特殊类型的属性映射 一.使用最基本的注解映射一个实体类 @Entity @Table(name = "userI…
     上篇文章我们通过注解对映射了单个实体类,但是具体项目中往往实体类之间又是相互关联的,本篇文章就是从实体类之间存在的不同关联角度,具体学习下如何映射他们之间的关联,主要涉及内容如下: 单向的一对一关联关系映射 单向的多对一的关联关系映射 单向的一对多的关联关系映射 单向的多对多的关联关系映射 双向的一对一关联关系映射 双向的一对多关联关系映射 双向的多对多关联关系映射 一.单向的一对一关联关系映射 首先,我们需要知道什么样的两张表具有一对一的关联关系. 这就是一个典型的单向的一对一的关联…
创建实体类对象: package domain; import java.util.HashSet; import java.util.Set; //客户实体 public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cust_level; private Strin…
HQL语句中不可以出现与表有关的内容,而是对象的属性 实体类(注意配置文件): package domain; import java.util.HashSet; import java.util.Set; //客户实体 public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private S…
最近学习ssh框架,总是出现这问题,后查证是没有开启事务. 如果采用注解方式,直接在业务层加@Transactional 并引入import org.springframework.transaction.annotation.Transactional; 详细信息,可以参考下面博客: 参考资料:http://blog.csdn.net/longxia1987/article/details/7819242 org.springframework.dao.InvalidDataAccessApi…
一.JPA概述以及它和Hibernate之间的关系 1.1.Hibernate 概述 JPA Java Persistence API,是EJB3规范中负责对象持久化的应用程序编程接口(ORM接口),它定义一系列的注释.这些注释大体可分为:类级别注释.方法级别注释.字段级别注释.给实体类添加适当的注释可以在程序运行时告诉Hibernate如何将一个实体类保存到数据库中以及如何将数据以对象的形式从数据库中读取出来. 目前有两种注释方案可以确定对象与表格之间的对应关系:一种是注释实体类的属性字段(字…
持久化对象唯一标识——OID 1)数据库中使用主键可以区分两个对象是否相同2)Java语言中使用对象的内存地址区分对象是否相同3)Hibernate中使用OID区分对象是否相同Hibernate认为每一个不同的对象应该具有一个唯一的标识,称这个标识为OID:为了使数据模型与数据库表一样使用主键来进行数据的区分,在数据模型类中声明唯一标识(uuid),作为Hibernate管理对象的唯一标识,并使用该标识与数据库表中的主键进行一一对应:为配合后期框架的使用,还使用该标识设定Java对象区分的规则,…
框架辅助开发者进行开发,半成品软件,开发者与框架进行合作开发 Hibernate3Hibernate是一种基于Java的轻量级的ORM框架 基于Java:底层实现是Java语言,可以脱离WEB,在纯JAVA环境下运行 轻量级:与重量级比对,消耗资源比较小,运算速度比较快 ORM:(ORMapping:Object Relation Mapping)对象关系映射 O:Java对象 R:关系型数据库表 M:映射(map:地图 映射) 对象与表的对应关系 1.类与表对应 2.类的属性与表的字段对应 3…
框架是什么 1.框架是用来提高开发效率的 2.封装了好了一些功能.我们需要使用这些功能时,调用即可.不需要再手动实现. 3.所以框架可以理解成是一个半成品的项目.只要懂得如何驾驭这些功能即可. orm分4级 1.hibernate属于4级:完全面向对象操作数据库 2.mybatis属于2级 3. dbutils属于1级 hibernate的好处 操作数据库的时候,可以以面向对象的方式来完成.不需要书写SQL语句 使用配置文件(或者其他手段),将对象的信息与数据库中的表进行对应 使用步骤: 1.导…
创建一个实体类: package domain; public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cust_level; private String cust_linkman; private String cust_phone; private Stri…
类级别查询优化: 创建一个实体类: package domain; import java.util.HashSet; import java.util.Set; //客户实体 public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cust_level; priv…
员工与角色案例: 一个员工可以是多种角色(总监,经理),一种角色可以是多个员工(保洁) 这里发现无法使用外键表达关系,多对多总是创建第三张表来维护关系 这张表至少两列,都是外键,分别引用两张表的主键 员工(用户)实体类: package domain; //用户实体 import java.util.HashSet; import java.util.Set; public class User { private Long user_id; private String user_code;…
两个实体类:客户与联系人,一个客户可以有多个联系人 客户类: package domain; import java.util.HashSet; import java.util.Set; //客户实体 public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cus…
HQL查询:hibernate独有的查询语言 适用于不复杂的多表查询 示例: 实体类: package domain; public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cust_level; private String cust_linkman; priv…
缓存不止存在与程序中,电脑硬件乃至于生活中都存在缓存 目的:提高效率 比如IO流读写字节,如果没有缓存,读一字节写一字节,效率低下 hibernate中的一级缓存:提高操作数据库的效率 示例: 抽取的工具类 package utils; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUt…
HqlDemoApp.java package cn.itcast.h3.query.hql; import java.io.Serializable; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import cn.itcast.h3.query.hql.vo.StudentModel; import cn.itcast.h3.query.hql.vo.T…
package cn.itcast.h3.query.hql; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import cn.itcast.h3.query.hql.vo.TeacherModel; import cn.itcast.util.HibernateUtil; public class MainRelaApp { //fetch="select" lazy…