atitit.获取connection hibernate4

 

​1. SessionFactoryUtils法(推荐) 1​

​2. ConnectionProvider 法( ) 1​

​3. 嘎自实现法(不推荐)读取hb配置文件 1​

​4. 或者使用work (但是work黑头的conn是个闭包,,不好用) 1​

 

1. SessionFactoryUtils法(推荐)

这个方法生成的多个conn实际都是一个,所以,不好用

Hibernate3.3.2版本中getSession().connection()已被弃用,替代方法SessionFactoryUtils.getDataSource(getSessionFactory()).getConnection()

作者:: 老哇的爪子 Attilax 艾龙,  

2. ConnectionProvider 法( )

雅十,这个方法生成的多个conn实际都是一个,所以,不好用

 

ConnectionProvider cp = ((SessionFactoryImplementor)ssn.getSessionFactory()).getConnectionProvider();

 

3. 嘎自实现法(不推荐)读取hb配置文件

读取hb配置文件,通过jdbc api生成con

c=new Hb4JdbcX().getConnection();

 

wechat4propty 项目..

//  c = cp.getConnection();

 

 

4. 或者使用work (但是work黑头的conn是个闭包,,不好用)

 

 

bd.bind(Connection.class).toInstance(

(Connection) new Closure2() {

 

@Override

public Object execute(Object arg0) {

BaseImpl basedao = new BaseImpl();

SessionFactory sessionFactory = HibernateSessionFactory.getSessionFactory();

 Connection c;

try {

c = SessionFactoryUtils.getDataSource(sessionFactory ).getConnection();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

throw new RuntimeException(e);

}

return c;

}

}.execute(null));