天天看点

获取Connection的方法

1、实际项目用的spring-mvc + jpa + hibernate,有需求来读取表名和列名。

方法一:

//有效,不过getConnectionProvider()是@Deprecated的,不建议用
Session session = (Session)em.getDelegate();
SessionFactoryImplementor sf = (SessionFactoryImplementor)session.getSessionFactory();
try (Connection conn = sf.getConnectionProvider().getConnection()){
           

方法二

//需要配置文件中有dataSource的bean的配置
@Autowired
private javax.sql.DataSource dataSource;

Connection conn = dataSource.getConnection()
           

方法三

//网上的方法,未尝试
getSession().doWork(  
  new Work() {  
    public void execute(Connection connection) {  
      // 这里已经得到connection了,可以继续你的JDBC代码。  
      // 注意不要close了这个connection。  
    }  
  }  
);