【发布时间】:2012-05-24 11:09:12
【问题描述】:
Hibernate Session'doWork() 方法提供对java.sql.Connection 的直接访问。
以下是创建和执行PreparedStatement以生成序列的方法之一
public Long generateId() {
final Long id[] = { null };
getSessionFactory().openSession().doWork(new Work() {
public void execute(Connection connection) throws SQLException {
PreparedStatement ps = connection
.prepareStatement("SELECT HIB_SEQ.nextval FROM DUAL");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
id[0] = rs.getLong(0);
}
}
});
return id[0];
}
首先,有没有更好的方法来做到这一点?
第二个问题,我们是否需要显式关闭上面创建的PreparedStatement?
【问题讨论】:
标签: java hibernate connection prepared-statement