Hibernate 的 Session 详解:Session 是 Hibernate 用来操作数据库的对象。
获得 Session 对象:
1.sessionFactory.openSession();
openSession 每次获得新的 session 对象,而且事务(transaction.commit())提交之后需要手动关闭,否则容易出现连接池溢出
2.sessionFactory.getCurrentSession();
getCurrentSession 获得的是上一次用过的对象,事务提交或回滚之后会自动关闭
session 需要封装到 transaction 中,进行提交,默认不会自动提交的
设置自动提交:
- session.doWork(new Work() {@Overridepublic void execute(Connection connection) throws SQLException {
- connection.setAutoCommit(true);
- }
- });
session 对象的 get 和 load 方法:
get(类名. class,序列号);
load(类名. class,序列号);
1.get 方法不管是否使用了返回的对象,都马上向数据库发送 SQL 语句,返回的是一个持久化对象。
而且如果查询不存在就返回 null。
2.load 方法只有当使用了返回的对象的时候才会发出 SQL 语句,返回的是一个代理对象。
当查询的数据不存在时,抛出一个 ObjectnotFoundException。
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: http://www.92to.com/bangong/2017/04-21/20667818.html