如何从Hibernate Session获取java.sql.Connection对象

时间:2014-06-11 00:40:19

标签: java hibernate

我需要java.sql.Connection。但我在这里使用Hibernate。不知怎的,我研究了一下,我发现了下面的替代方案,但是没有用。

import org.hibernate.connection.ProxoolConnectionProvider;
public class ConnectionDB{
    //I have imported below class 
    ProxoolConnectionProvider proxoolProvider = new ProxoolConnectionProvider();
    org.hibernate.cfg.Configuration cfg = HibernateUtil.getConfiguration();//this method will return configuration 
    java.util.Properties props =  cfg.getProperties();//This will return Properties Object
    //Using properties object I just tried to get The Connection Object by following method
    proxoolConn.configure(props);// I just configured the Porperties object 
    proxoolConn.getConnection();
}

但是没有运气我只是在控制台中没有异常结束..我正在使用Struts 2,Hibernate和JasperReports。

任何人都可以帮我从Hibernate获取连接对象吗?

2 个答案:

答案 0 :(得分:4)

以下代码假设您有一个现有的并且打开Hibernate org.hibernate.Session

public void doWorkOnConnection(Session session) {
  session.doWork(new Work() {
    public void execute(Connection connection) throws SQLException {
      //use the connection here...
    }
  });
}

如果您需要有关如何使用上述课程的信息,请阅读Hibernate 3.5 Javadoc。具体来说,请先阅读Session,然后阅读Work

答案 1 :(得分:1)

您还可以将Session方法向下转换为SessionImpl并轻松获取连接对象:

SessionImpl sessionImpl = (SessionImpl) session;
Connection conn = sessionImpl.connection();