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 ...
随机推荐
- Spring MVC 下index.jsp访问
spring-mvc.xml配置 <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --> <bean class="org.springframework.we ...
- UVa 10391 (水题 STL) Compound Words
今天下午略感无聊啊,切点水题打发打发时间,=_=|| 把所有字符串插入到一个set中去,然后对于每个字符串S,枚举所有可能的拆分组合S = A + B,看看A和B是否都在set中,是的话说明S就是一个 ...
- UVa 11825 (状压DP) Hackers' Crackdown
这是我做状压DP的第一道题,状压里面都是用位运算来完成的,只要耐下心来弄明白每次位运算的含义,还是容易理解的. 题意: 有编号为0~n-1的n台服务器,每台都运行着n中服务,每台服务器还和若干台其他服 ...
- 51nod1379 索函数
果断打表找规律.然后看得出来是2^k-1之后又不知道怎么求出k有什么卵用... http://blog.csdn.net/guhaiteng/article/details/52094210 %%%% ...
- POJ2886 Who Gets the Most Candies? 线段树 反素数
题意:有一群小朋友围成一个环,编号1,2,3…N.每个人手上握着一个非0的数字,首先第K个人出列,然后看他手上的数字,假设为m,则从下一个开始第m个人出列,一直如此.并设i为小于等于N的最大反素数,问 ...
- Windows上安装Yeoman
之前直接安装完Node.js后,运行npm install -g yo命令,结果出现什么"要安装framework2.0 sdk,vcbuild"什么的错误,怎么也弄不好,结果是各 ...
- BZOJ 1176 MOKIA
cdq分治. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm ...
- struts2拦截器配置;拦截器栈;配置默认拦截器;拦截方法的拦截器MethodFilterInterceptor;完成登录验证
struts2.xml 内容 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts ...
- UVa10603 Fill
解题思路:这是神奇的一题,一定要好好体会.见代码: #include<cstdio> #include<cstring> #include<algorithm> # ...
- 【英语】Bingo口语笔记(41) - 有关爱情的表达