hibernate4中取得connection的方法

news/2024/7/5 1:47:02

在hibernate3中,使用了c3p0连接池,尝试了多种办法取得connection对象,以下两种可以使用。

Java代码 
     Connection conn;  // 方法1:hibernate4中将要废弃这个方法  conn = session.connection();  // 方法2:这个方法也可以用,速度稍慢  SessionFactoryImplementor sessionFactory = (SessionFactoryImplementor)new Configuration().configure().buildSessionFactory();   conn = sessionFactory.getConnectionProvider().getConnection();  //方法:3  ConnectionProvider cp =((SessionFactoryImplementor)sessionFactory).getConnectionProvider();  cp.getConnection();  

 


按hibernate的计划,4.0开始将除去Session.connection()这个方法,所以还是最好不要使用它了。
官方的替代方法是用Session.doWork();
如:

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

 

另外一个方法:

 

package com.trendcom.base.util;import java.sql.Connection;
import java.sql.SQLException;import javax.sql.DataSource;import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate4.SessionFactoryUtils;
import org.springframework.web.context.ContextLoaderListener;public class DataSourceUtil {private static SessionFactory sessionFactory=null;static{  sessionFactory=(SessionFactory) ContextLoaderListener.getCurrentWebApplicationContext().getBean("sessionFactory");}public static Connection getConnection(){try {return getDataSource().getConnection();} catch (SQLException e) {e.printStackTrace();}return null;}public static SessionFactory getSessionFactory() {return sessionFactory;}public static void setSessionFactory(SessionFactory sessionFactory) {DataSourceUtil.sessionFactory = sessionFactory;}private static DataSource getDataSource() {return SessionFactoryUtils.getDataSource(getSessionFactory());}}

 


http://lihuaxi.xjx100.cn/news/245850.html

相关文章

(转)I 帧和 IDR 帧的区别

I 帧和 IDR 帧的区别:http://blog.csdn.net/skygray/article/details/6223358 IDR 帧属于 I 帧。解码器收到 IDR frame 时,将所有的参考帧队列丢弃 (用x264_reference_reset 函数实现——在 encoder.c 文件中) 。这点是所有 I 帧…

Hulu直播服务难点解析(一):系统需求

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/83053654 Hulu在其博客发布了建立直播服务遇到的挑战及解决方案,这对于以前只提供点播服务的系统而言是一次彻底的升级。Li…

JDK动态代理和Cglib的动态代理

2019独角兽企业重金招聘Python工程师标准>>> 最简单的是静态代理方法,即代理模式,这里就不多啰嗦了。。 重点说一下JDK的动态代理和Cglib的动态代理吧 先说JDK的,需要被代理的类需要有接口,否则无法实现 package proxy…

滚动屏幕显示隐藏div_HTML结构-常用标签:a·img·table·form·input·iframe·div

学习目标:掌握html的结构,head与body的区别 掌握常用标签 掌握a标签,img标签 掌握table标签 掌握form标签,input标签 掌握iframe 和frameSet标签 掌握div标签互联网的三大基石互联网中的三大基石是什么?HTML:超文本标记语言 HTTP:超文本传输协议 URL:统一资源定位符…

如何更快速加载你的JS页面

确保代码尽量简洁 不要什么都依赖JavaScript。不要编写重复性的脚本。要把JavaScript当作糖果工具,只是起到美化作用。别给你的网站添加大量的JavaScript代码。只有必要的时候用一下。只有确实能改善用户体验的时候用一下。 尽量减少DOM访问 使用JavaScript访问DOM元…

Android APP全面屏适配技术要点

全面屏的概念 为什么先要解释一下全面屏,因为这个词在现在来讲就是一个伪命题。全面屏字面意思就是手机的正面全部都是屏幕,100%的屏占比。但是现在推出所谓“全面屏”手机的厂商没有一个能达到全面的。 那么下面来说一下Android开发领域对全面屏的理解和…

mgr未同步 mysql_MySQL Group Replication(多主同步复制MGR)

开启replication配置:server-id1 #标识服务器唯一log-binmysql-bin #二进制日志开启enforce_gtid_consistency ON #GTID模式是组复制的基础技术binlog-formatrow#必须是ROW模式gtid-modeON …

Java三大主流框架概述

Struts、Hibernate和Spring是我们Java开发中的常用关键,他们分别针对不同的应用场景给出最合适的解决方案。但你是否知道,这些知名框架最初是怎样产生的?我们知道,传统的Java Web应用程序是采用JSPServletJavabean来实现的,这种模…