Hibernate session获得connection的时机
发布网友
发布时间:2022-04-11 04:46
我来回答
共3个回答
热心网友
时间:2022-04-11 06:15
connection是对数据库的连接,是在你使用hibernate时读取配置文件中的<session-factory>时建立的,由hibernate来管理对数据库的连接。
这是SessionFactory中定义的openSession():
public org.hibernate.classic.Session openSession() throws HibernateException; 返回经典Session的引用。
这是经典Session的定义:
public interface Session extends org.hibernate.Session
继承hibernate3中的Session。
在hibernate3中的Session接口中你可以找到如下两个方法的声明:
public Connection connection() throws HibernateException;
public Transaction beginTransaction() throws HibernateException;
第一个方法使得你可以使用jdbc的方式操作数据库,通常用来调用存储过程等
第二个是在session中获得对事务进行操作。
所以整个过程应该是: 你先建立对数据库的连接,然后使用Session对数据库进行操作。白话就是先建立连接,然后进行一系列会话。如果涉及到并发、一致性等问题,要进行事务操作的时候先打开事务,然后在执行一系列session中的方法对数据库进行操作。
热心网友
时间:2022-04-11 07:33
你用到SPRING 了吗? 如果用到了 SPRING 那在你启动APPLICATION 时 就己经创建了数据连接池 就是一些connection 想用的时候 直接 调用
没用到SPRING 的话 是在创建 HIBERNATESESSIONFACTORY 时 创建连接池
不过 不建议你研究这些 在实际开发中 用不到这些的
这些等你开发了一段时间以后 研究底层时 研究一下他的实现原理还是不错的
热心网友
时间:2022-04-11 09:08
在sessionFactory.opensession()打开时获得connection