Hibernate 学习小结

Hibernate配置文件包括两种:

主配置文件:hibernate.cfg.xml,整个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





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值