hibernate4中取得connection的方法
(2012-08-16 21:02:55)
在hibernate3中,使用了c3p0连接池,尝试了多种办法取得connection对象,以下两种可以使用。
按hibernate的计划,4.0开始将除去Session.connection()这个方法,所以还是最好不要使用它了。
官方的替代方法是用Session.doWork();
如:
- Connection
conn; -
- //
方法1:hibernate4中将要废弃这个方法 - conn
= session.connection(); -
- //
方法2:这个方法也可以用,速度稍慢 - SessionFactoryImplemento
r sessionFactory = (SessionFactoryImplemento r)new Configuration().configure().buildSessionFactory(); - conn
= sessionFactory.getConnectionProvider().getConnection(); -
- //方法:3
- ConnectionProvider
cp =((SessionFactoryImplemento r)sessionFactory).getConnectionProvider(); - cp.getConnection();
按hibernate的计划,4.0开始将除去Session.connection()这个方法,所以还是最好不要使用它了。
官方的替代方法是用Session.doWork();
如:
- getSession().doWork(
-
new Work() { -
public void execute(Connection connection) { -
// 这里已经得到connection了,可以继续你的JDBC代码。 -
// 注意不要close了这个connection。 -
} -
} - );