DaoFactory.java
package com; import com.isoftstone.fwk.dao.ActionDao; import com.isoftstone.fwk.dao.Dao; import com.isoftstone.fwk.util.SpringUtils; import java.sql.Connection; import org.apache.log4j.Logger; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.springframework.orm.hibernate3.SessionFactoryUtils; import org.springframework.orm.hibernate3.SessionHolder; import org.springframework.transaction.support.TransactionSynchronizationManager; public class DaoFactory { public static Logger logger = Logger.getLogger(DaoFactory.class); public static Dao createActionDao() throws Exception { return ActionDao.newInstance(); } public static void bindSession() { SessionFactory sf = (SessionFactory) SpringUtils.getSpringBean("sessionFactory"); Session session = SessionFactoryUtils.getSession(sf, SessionHolder sessionholder = TransactionSynchronizationManager.bindResource(sf, sessionholder); } public static SessionFactory bindTransaction() throws Exception { SessionFactory sf = (SessionFactory) SpringUtils.getSpringBean("sessionFactory"); Session session = SessionFactoryUtils.getSession(sf, session.beginTransaction(); SessionHolder sessionHolder = TransactionSynchronizationManager.bindResource(sf, sessionHolder); return sf; } public static void beginTransaction() { SessionFactory sf = (SessionFactory) SpringUtils.getSpringBean("sessionFactory"); Session session = SessionFactoryUtils.getSession(sf, Transaction transaction = session.beginTransaction(); } public static void commitTransaction() throws Exception { SessionFactory sf = (SessionFactory) SpringUtils.getSpringBean("sessionFactory"); commitTransaction(sf, true); } public static void commitTransaction(SessionFactory sf) throws Exception { commitTransaction(sf, true); } public static void commitTransaction(SessionFactory sf, boolean flag) throws Exception { Transaction transaction = null; Session session = null; Connection conn = null; try { SessionHolder sessionholder = (SessionHolder) TransactionSynchronizationManager.getResource(sf); if (sessionholder != null) { session = sessionholder.getSession(); if (flag) { transaction = session.getTransaction(); if (sessionholder != null) { conn = sessionholder.getSession().connection(); } boolean tt = session.connection().getAutoCommit(); if ((transaction != null) && (transaction.isActive()) && (!tt)) { transaction.commit(); transaction = null; } } } } catch (Exception exception) { if (flag) { transaction.rollback(); } exception.printStackTrace(); throw exception; } } public static void rollbackTransaction() { SessionFactory sf = (SessionFactory) SpringUtils.getSpringBean("sessionFactory"); try { rollbackTransaction(sf); } catch (Exception e) { e.printStackTrace(); } } public static void rollbackTransaction(SessionFactory sessionfactory) throws Exception { Object obj = null; Session session = null; try { SessionHolder sessionholder = (SessionHolder) TransactionSynchronizationManager.getResource(sessionfactory); if (sessionholder != null) { session = sessionholder.getSession(); Transaction transaction = session.getTransaction(); transaction.rollback(); } } catch (Exception exception) { exception.printStackTrace(); throw exception; } } public static void unbindSession() throws Exception { SessionFactory sf = (SessionFactory) SpringUtils.getSpringBean("sessionFactory"); try { Session session = SessionFactoryUtils.getSession(sf, true); unbindTransaction(sf); session.close(); } catch (Exception e) { e.printStackTrace(); } } public static void unbindTransaction(SessionFactory sf) throws Exception { TransactionSynchronizationManager.unbindResource(sf); } }
DaoFactory.java的更多相关文章
- Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能
视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpe ...
- 《Java从入门到精通》src9-25
find . -name *.java |xargs -i sh -c "echo {};cat {}" > ../all.java[op@TIM src]$ cat al ...
- Java Web 中使用ffmpeg实现视频转码、视频截图
Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html ...
- java中的DAO设计模式
创建数据库和表 sql语句: DROP TABLE IF EXISTS product; CREATE TABLE product( product_id varchar(20) NOT NULL, ...
- 使用java执行ffmpeg命令进行推流操作
视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpe ...
- Java实例---简单的数据库操作
源码分析 DAOFactory.java package cn.ftl.mysql ; public class DAOFactory { public static IEmpDAO getIEmpD ...
- Java实现视频网站的视频上传、视频转码、及视频播放功能(ffmpeg)
视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpe ...
- DAO设计模式 -- 使用数据库连接类连接MySql数据库并实现添加用户
1. DAO简介 DAO设计模式是属于J2EE数据库层的操作,使用DAO设计模式可以简化大量代码,增强程序的可移植性. 2. DAO各部分详解 DAO设计模式包括5个重要的部分,分别为数据 ...
- JavaBean中DAO设计模式介绍(转)
一.信息系统的开发架构 客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是客户端,简单的来说就是浏览器. 2.显示层:JSP/Ser ...
随机推荐
- MVC 简单发送邮件示例
没啥好说的 直接上代码 @{ try { WebMail.SmtpServer = "smtp.qq.com";//SMTP邮件服务器 WebMail.SmtpPort = ;// ...
- [转][TFS] 禁止默认允许多人签出和强制解除签入签出锁
转自:http://blog.xieyc.com/tfs-disable-multiple-check-out-and-force-to-undo-locking/ | 小谢的小站 [TFS] 禁止默 ...
- 简单使用Junit
不需要配置,导入相应jar,然后在测试的方法上面加入注解@Test 执行的时候选择junit即可.
- xcode安装app
安装 xcode 安装 xcode command line tool 检查是否安装 在终端中运行: xcrun simctl list 如果出现所有的 Device Types,则可以进行第3步 如 ...
- python练习程序(c100经典例12)
题目: 判断101-200之间有多少个素数,并输出所有素数. for i in range(101,201): flag=0; for j in range(2,int(i**(1.0/2))): i ...
- Android 图文教学让你彻底理解activity启动模式
我们首先从最简单的开始, standard 这个模式就是默认的模式,我们都知道 当你用这个模式时,每次发送一个intent,都会生成一个新的实例! 我写一个简单的例子: <?xml versio ...
- 【转】ios开发之AppDelegate
创建应用程序之后之后,默认有AppDelegate.h文件与AppDelegate.m文件. AppDelegate为何物? AppDelegate为整个应用的一个代理,提供程序启动.退出等类似 ...
- Symfony2 学习笔记之插件格式
一个bundle类似于其它框架中的插件,但是比插件表现更好.它跟其它框架最主要的不同是在Symfony2中所有东西都是bundle,包括核心框架功能和你写的所有应用程序代码.Symfony2中,bun ...
- 【原创】Linux下编译链接中常见问题总结
前言 一直以来对Linux下编译链接产生的问题没有好好重视起来,出现问题就度娘一下,很多时候的确是在搜索帮助下解决了BUG,但由于对原因不求甚解,没有细细研究,结果总是在遇到在BUG时弄得手忙脚乱得. ...
- B-树和B+树
B-树和B+树是一种平衡的多路查找树,它在文件系统中很有用.一颗m阶的b-树,或为空树,或满足下列特性的m叉树.1)树中每个节点至多有m棵子树2)若根结点不是叶子结点,则至少有两棵子树.3)除根之外的 ...