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 ...
随机推荐
- HTML的列表标签
一.上下层列表标签:<dl>..</dl>: 上层dt 下层dd:封装的内容会被自动缩进的效果 <dl> <dt>运动户外</dt> < ...
- linux下gitflow辅助工具安装和使用
gitflow是一个确保nvie推荐的git branch分支策略最佳模型得到有效实施的辅助工具.它作为git的一个子命令而存在. http://nvie.com/posts/a-successful ...
- UVa 11988 (数组模拟链表) Broken Keyboard (a.k.a. Beiju Text)
题意: 模拟一个文本编辑器,可以输入字母数字下划线,如果遇到'['则认为是Home键,如果是']'则认作End键. 问最终屏幕上显示的结果是什么字符串. 分析: 如果在数组用大量的移动字符必然很耗时. ...
- memcached内存管理及key value长度限制
1)什么是内存碎片?内存是大小有限的资源.例如把内存比作一张小床,来了一个小伙伴,可以睡下,再来一个小伙伴也能睡下.现在两个人了,他们点了差不多的大小的位置(资源),位置还有剩下.然后再来一个小胖子, ...
- NBUT 1121 Sakuya's Fly Knife 飞刀(暴力)
题意:给出一个带有n*m个格子的矩阵,部分格子中有靶子target,现在要从一个没有靶子的格子中射出飞刀数把,飞刀是可穿透靶子的,同一直线上都可以一刀全射掉.现在问在哪个格子射出飞刀,可以在全部射中的 ...
- 20160207.CCPP体系详解(0017天)
程序片段:01.Point.c+02.进程.c+03.内存的栈和堆.c 内容概要:内存32位和64位的区别 ///01.Point.c #include <stdio.h> #includ ...
- mac vim shell配置
一 : vim 配置 1 目录/usr/share/vim/vimrc 2 Python 自动缩进 http://blog.csdn.net/ikerpeng/article/details/1866 ...
- 最大熵模型 Maximum Entropy Model
熵的概念在统计学习与机器学习中真是很重要,熵的介绍在这里:信息熵 Information Theory .今天的主题是最大熵模型(Maximum Entropy Model,以下简称MaxEnt),M ...
- PHP实现站点pv,uv统计(二)
数据采集脚本如下: error_reporting(0);date_default_timezone_set("PRC");$environment = get_cfg_var(' ...
- AutoCompleteTextView不能使用的问题
AutoCompleteTextView按照网络上的方法写之后不能使用 解决方法: android:layout_width="fill_parent" 而不能是wrap_pare ...