Hibernate 问题:
Hibernate 的工作原理:
①. 通过Configuration config = new Configuration().configure(); // 读取并解析hibernate.cfg.xml配置文件
②. 由hibernate.cfg.xml中的< mapping resource=“com/xx/User.hbm.xml”/>读取并解析映射信息
③. 通过SessionFactory sf = config.buildSessionFactory(); //创建SessionFactory
④. 通过sessionFactory.openSession获取session
⑤. 通过session.beginTransaction开启事务
⑥. 操作数据
⑦. 提交事务
⑧. 关闭session和sessionFactory
Hibernate 的优缺点:
优点:
对JDBC访问数据库的代码做了封装,简化了数据访问层繁琐的重复性代码
映射的灵活性, 它支持各种关系数据库, 从一对一到多对多的各种复杂关系.
非侵入性、移植性会好
缓存机制,提供一级缓存和二级缓存
缺点:
无法对 SQL 进行优化
框架中使用ORM原则, 导致配置过于复杂
执行效率和原生的 JDBC 相比偏差:,特别是在批量数据处理的时候
不支持批量修改、删除
Hibernate 的优缺点:
①. 临时状态(新建状态):不处于session缓存中
②. 持久化状态:加入到session缓冲中
③. 游离状态:已经被持久化,但不在session的缓存中
Hibernate如何延迟加载:
当调用 session的load()方法加载实体类时,就会延迟加载
Hibernate进行大批量更新的经验:
直接通过JDBC API执行相关的SQL语句或者调用相关的存储过程是最佳的方式