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 ...
随机推荐
- Windows 桌面软件:不绑定bing搜索的缤纷桌面
bing:世界上最好的壁纸提供商 ^.^一直垂涎着Bing的壁纸,总是想找机会来一番邂逅. 之前使用bing自家的缤纷桌面.这个软件缺点就是和bing搜索绑定太厉害,放在桌面上感觉那个黑色的条框很碍 ...
- Qt之HTTP上传/下载
简述 在前面章节中我们讲述了关于Qt显示网络图片的内容,比较简单,因为图片一般都比较小,下载到本地速度比较快,所以基本不需要什么特殊处理,本节我们主要针对HTTP实现上传/下载进行详细的讲解与分享,包 ...
- UVa 1225 Digit Counting
题意:给出n,将前n个整数顺次写在一起,统计各个数字出现的次数. 用的最笨的办法--直接统计-- 后来发现网上的题解有先打表来做的 #include<iostream> #include& ...
- UVALive 4043 Ants 蚂蚁(二分图最佳完美匹配,KM算法)
题意: 有n个蚂蚁n棵树,蚂蚁与树要配对,在配对成功的一对之间连一条线段,要求所有线段不能相交.按顺序输出蚂蚁所匹配的树. 思路: 这个题目真是技巧啊,不能用贪心来为每个蚂蚁选择最近的树,这样很可能是 ...
- php的session_start
如果session使用cookie记录,那么在session_start时会设置一个cookie,参数取决于php.ini的设置,当然也可以通过session_set_param在程序里设置.不同站点 ...
- SmartWeatherAPI_Lite_WebAPI C# 获取key加密
中国气象局面向网络媒体.手机厂商.第三方气象服务机构等用户,通过 web 方式提供数据气象服务的官方载体. 在一周前已经申请到appid,但是苦于没有C#版的key 的算法,一直验证不通过,经过几天查 ...
- 字符串string
1.字符串获取类.封装检测数字的方法 var str = '前端开发'; //alert(str.length); //alert(str.charAt()); //没有参数 取得索引是0 结果是:前 ...
- jQuery - 实时统计输入框输入个数(中文输入法适用)
经常在实时统计文本框输入多少字的时候,有时会出现不及时统计,特别是在中文输入法下. 为了实时准确统计,可以修改代码如下: $(function() { $("#txtT ...
- 【转】ios开发之AppDelegate
创建应用程序之后之后,默认有AppDelegate.h文件与AppDelegate.m文件. AppDelegate为何物? AppDelegate为整个应用的一个代理,提供程序启动.退出等类似 ...
- Linux makefile教程之隐含规则九[转]
隐含规则 ———— 在 我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o] 文件,Windows下是[.o ...