Hibernate的一些知识

1、Hibernate的工作原理

1)configuration类读取并解析hibernate.cfg.xml配置文件
2)读取并解析映射信息,创建sessionFactory
3)打开session
4)创建事务
5)持久化操作
6)关闭session
7)整个应用停止,关闭sessionFactory


2、Hibernate中load和get的区别

假如数据库中没有这个对象,通过get方法加载返回的是一个null。通过load方法加载则返回一个代理对象,如果调用了对象的某个属性,会抛出ObjectNotFoundException
load支持延时加载,get不支持


3、Hibernate的主键生成策略

1)sequence:Oracle、DB2
2)identity:mySQL、 SQL Server
3)native:根据方言(dialect)不同来自动选择identity或sequence
4)uuid:hibernate每次进行save()操作时随机生成一个32位的不重复的字符串,不用程序员去参与维护,PO类的ID属性必须为String
5)assigned:不推荐使用,程序员要自己维护主键的ID值,当数据量很大的时候很难维护


4、Hibernate的5个核心接口

  1. Configuration接口:配置Hibernate,根据其启动hibernate,创建SessionFactory
  2. SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建session对象,线程安全、重量级、二级缓存
  3. Session接口:负责添删改查对象,线程不安全、轻量级、一级缓存
  4. Transaction接口:管理事务
  5. Query和Criteria接口:执行数据库的查询语句

5、如何优化Hibernate?

灵活使用单向one-to-many
尽量使用many-to-one,避免使用单向one-to-many
不使用一对一,用多对一取代
配置对象缓存,不适用集合缓存
一对多用bag,多对多用set
继承类使用显式多态
表的字段要少,不要怕表的关联多,使用二级缓存


6、Hibernate的优缺点

优点:
1)更加的面向对象,提高开发效率
2)对JDBC进行了封装,简化了大量重复性代码
3)轻量级框架,对代码无入侵性
4)使用hql,支持方言配置,方便数据库移植
5)是一个优秀的ORM实现,简化DAO的编码工作
缺点:
1)效率比JDBC差
2)不适合批量操作
3)对表的操作不够灵活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值