Hibernate 学习小结

Hibernate配置文件包括两种:

 

         主配置文件:hibernate.cfg.xml,整个hibernate项目只有一个,它包含三部分内容:

1.       连接数据库信息:连接数据库字符串、连接数据库用户名,密码、驱动程序名称、方言。

Hibernate 学习小结_第1张图片

1.       自己的属性配置:properties

2.       映射文件位置:指向多个映射文件位置

         映射文件:多个,一般是一个表一个(多对多是三个表两个)。命名方式:表名.hbm.xml

                             一个映射文件使java项目中一个实体类与数据库一张表形成对应关系。

a)        catalog值数据库名称,name指向实体类,必须是全名,包名+类名。

b)       id只能出现一次 ,表示主键。

c)        columm一定指的是数据库表列名,property,id指的是实体类属性名。

 

 

Hibernate反向工程做的三件事情:

 

1.       生成一个实体类,pojo类并实现了Serializable接口。

2.       生成映射文件。

3.       在主配置文件中指向生成的映射文件。

 

 

 

 

持久化:将程序数据在瞬时状态和持久状态之间转换的一种机制.

DAO:是一种程序数据访问层(持久化层)的设计思想,或者说DAO模式是持久化层的一个实现。

ORM:全称是Object-Relational-Mapping 即 对象关系映射--完成应用程序对象数据到关系型数据映射机制。

ORM和DAO的关系:ORM是DAO针对接口的关系型数据库的一种实现,本质就是一个DAO实现类。

Hibernate和ORM的关系:hibernate框架就是ORM思想的一个实现。  

ORM框架与JDBC的关系:凡是java程序要与数据库交互,必须使用JDBC,Hibernate等框架只是把JDBC进行了封装.

 

 

 

  Hibernate的及时加载和延迟加载

 

及时加载:session.get(class,int x);不管是否使用马上加载- -从数据库中取出数据加载到内层,优点:响应速度快,效率高。缺点:占用资源多;

延迟加载:session.load(class,int x);代码执行后并不马上执行sql语句从数据库中获取数据,而是在使用对象时候才加载,如果使用此状态,session要一直处于open状态。有点:响应速度慢。缺点:占用资源少;

 

                                                       

Hibernate对象的三种状态

 

1.临时状态(未受管理状态):新创建的对象,临时态数据库中不一定有与之对应的数据。

2.持久化状态(管理状态):对对象进行持久化操作,包括save,delete,update,get,load,saveOrUpdate操作对象会变成持久态,持久态的数据在事务提交时会自动与数据库对应表自动匹配(把程序对象值赋给数据库表值)。

3.游离状态(未管理状态):session.clear(),session.close();对象变为游离态,游离态数据库中有与之对应的数据,游离态一定是由持久态转变的。

 

 

主键关系形成的一对一

 

形成:

外键表的外键既是外键表的主键,又是主键表的外键。

不允许使用延迟加载,lazy的值都为false----全部是即及时加载。

 

外键关系形成的一对一

 

形成:

就是普通的一对多关系,在给多的一方的外键加了一个唯一约束。

主键方依然是及时加载,但外键方只能是延迟加载 lazy值都是true。




HQL



Hibernate 学习小结_第2张图片

Hibernate 学习小结_第3张图片



你可能感兴趣的:(Hibernate 学习小结)