hibernate4中取得connection的方法
在hibernate3中,使用了c3p0连接池,尝试了多种办法取得connection对象,以下两种可以使用。
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();
如:
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());}}
hibernate4中取得connection的方法相关推荐
- nginx 学习笔记(4) Connection处理方法
nginx支持connection的多种处理方法.nginx运行的平台确定了可用的处理方法. 在特定平台下connection的多种处理方法中,nginx会自动选择一种最有效的方法.然而,如果需要,你 ...
- oracle删除表中数据_工作表中提供的特定数据在数据库中批量删除的方法
大家好,我们今日继续讲解VBA数据库解决方案的第25讲内容:利用VBA,把工作表中提供的数据在数据表中批量删除的方法.在上一讲中,我们讲了实现在数据表中删除记录的一般方法,这种方法可以对重复的数据进行 ...
- PHP中的常见魔术方法功能作用及用法实例
这篇文章主要介绍了PHP中的常见魔术方法功能作用及用法实例,本文讲解了构造函数和析构函数__construct()和__desctruct()以及属性重载(Property Overloading)_ ...
- java jdbc reparecall_Java Connection.prepareCall方法代碼示例
本文整理匯總了Java中java.sql.Connection.prepareCall方法的典型用法代碼示例.如果您正苦於以下問題:Java Connection.prepareCall方法的具體用法 ...
- HTTP协议中request报文请求方法和状态响应码
一个HTTP请求报文由4部分组成: 请求行(request line) 请求头部(header) 空行 请求数据 下图给出了请求报文的一般格式: 请求行中包括了请求方法,常见的请求方法有: GET:从 ...
- oracle Blob保存方式,关于文件保存到Oracle中BLOB字段的方法及例子
关于文件保存到Oracle中BLOB字段的方法及例子 ------------------------------------------- public class FileOpClass { pu ...
- [转载] Python3.X 线程中信号量的使用方法示例
参考链接: 示例说明Python2.x和Python3.x之间的重要区别 信号量semaphore 是一个变量,控制着对公共资源或者临界区的访问.信号量维护着一个计数器,指定可同时访问资源或者进入临界 ...
- mysql图片_往MySQL中存储图片的方法
1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦.但有些时候,向MySQL ...
- Oracle Spatial中上载GIS空间数据方法研究
Oracle Spatial中上载GIS空间数据方法研究 作者:佚名 文章来源:博客中国 点击数:6873 更新时间:2006-8-24 摘要:采用Oracle Spatial 存储 ...
最新文章
- 【NeurIPS2021】存在潜在变量和选择偏差的递归因果结构学习
- 努力学习 HTML5 (2)—— 元素的增和删
- magento根据浏览次数为商品做排行
- linux下字符串查找 与替换
- PHP-fpm 优化问题
- 【struts2+hibernate+spring项目实战】统一异常处理(ssh)
- 久坐的危害和解决方式
- ImportError: dynamic module does not define module export function (PyInit__caffe)
- 前端学习(3050):vue+element今日头条管理-表格组件基本使用
- tablednd保存 php,JQuery-tableDnD 拖拽的基本使用介绍
- 关于java.lang.ArithmeticException: divide by zero的异常
- 大数据失败案例之七宗罪
- app 缓存html页面,HTML5本地存储VS App缓存离线网站浏览
- 图像处理——PIL、OpenCV和numpy表示图像数据格式的相互转换
- linux 上传下载工具有哪些,Linux上传下载工具
- 鼠标的默认事件之oncontextmenu及其案例
- 多目标决策---多目标线性规划的解法
- 【http协议2】 深入理解HTTP协议
- dede图片上传php,织梦DEDE 栏目字段添加并调用:例如图片上传
- 易洁仓库管理 v3.1.125 网络版 官方
热门文章
- alternate端口什么意思_宽带光信号闪红灯是什么意思?
- 若依前后端分离如何写移动端接口_前后端分离实践的架构设计
- Mybatis入门:2(xml形式的增删改查)
- Java项目:无库版银行管理系统(java+Gui+文档)
- MySQL设值自动修改时间
- Ubuntu16.04 搭建nexus 私服 学习步骤以及安装maven和git
- 大数据岗位必知必会的53个Java基础
- iOS 解决app退出后台应用重新启动的问题
- 虚拟货币市值回调到4100亿整数关口,EOS逆势站上100关口
- 白盒测试实践-任务完成