session.getConnection()禁用后的替代方法

session.getConnection()在3.x版本中已经deprecated,在4.x中终于去掉了。对于一些非用connection不可的情况下,Hibernate给出了一个替代办法。

final String[] seqn=new String[1];
HibernateSessionFactory.getSession().doWork(new Work() {
public void execute(Connection connection) throws SQLException {
CallableStatement stmt = connection.prepareCall("{call pkg_test.proc_log(?)}");
stmt.registerOutParameter(1, java.sql.Types.INTEGER);  //返回的参数
stmt.execute();
seqn[0] = stmt.getString(1);

}
});
这个connection是hibernate管理的,直接通过jdbc跟数据库相连,随着方法的结束,hibernate自动回收该connection,避免了以前版本中connection中出现的异常。

你可能感兴趣的:(Hibernate)