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 ...
随机推荐
- mac terminal 命令
mac下显示隐藏文件 显示 defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏 defaults write com.app ...
- 如何直接在github网站上更新你fork的repo?
玩过github的人一定会在你自己的账号上fork了一些github开源项目.这些开源项目往往更新比较活跃,你今天fork用到你自己的项目中去了,过几个星期这个fork的origin可能有一些bugf ...
- 使用tdcss.js轻松制作自己的style guide
http://jakobloekke.github.io/tdcss.js/ 在前端开发中,如果能够有一个style guide对于设计来说就显得专业稳定,一致性.在上述链接中,有一个tdcss.js ...
- Android之判断某个服务是否正在运行的方法
/** * 判断某个服务是否正在运行的方法 * * @param mContext * @param serviceName * 是包名+服务的类名(例如:net.loonggg.testbackst ...
- 使用dev http client调试restful API开发
安装chrome 插件:dev http client, 使用VPN打开 google网站,
- ECSHOP 商品评论条件修改——购买过该商品且只能评价一次(购买多少次能评价多少次)
下文转自http://bbs.ecshop.com/thread-1131529-1-1.html ECSHOP 商品评论条件修改,修改为购买过该商品多少次,就只能评价多少次.不需要修改数据库,原理简 ...
- 【转】在Eclipse中使用PyDev进行Python开发
原文网址:http://www.crifan.com/eclipse_use_pydev_develop_python/ 在折腾: [记录]使用Python的IDE:Eclipse+PyDev 的过程 ...
- java web项目导入问题
由于工作问题,接触到很多其他人的项目,有时候想要直接跑起来,还是需要一定的耐力. 1:导入不进去,干脆新建项目,一个个复制进去: 2:第三方jar包不要忘记,核实jdk j2ee的版本,编译路径 ...
- Shell教程1-第一个Shell脚本
打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了.输入一些代码: #!/bin/bash ...
- C++调试 输出数组内容和数组名
#include <cstdio> using namespace std; //函数定义 #define printArr(arr,n,format) \ printf("%s ...