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 ...
随机推荐
- git deployment strategy
http://nicolasgallagher.com/simple-git-deployment-strategy-for-static-sites/ You can still ignore a ...
- [ionic开源项目教程] - 手把手教你使用移动跨平台开发框架Ionic开发一个新闻阅读APP
前言 这是一个系列文章,从环境搭建开始讲解,包括网络数据请求,将持续更新到项目完结.实战开发中遇到的各种问题的解决方案,也都将毫无保留的分享给大家. 关注订阅号:TongeBlog ,查看移动端跨平台 ...
- [ionic开源项目教程] - 第9讲 新闻详情页的实现
目录 [ionic开源项目教程] 第1讲 前言,技术储备,环境搭建,常用命令 [ionic开源项目教程] 第2讲 新建项目,架构页面,配置app.js和controllers.js [ionic开源项 ...
- UVa 10054 (打印欧拉回路) The Necklace
将每个颜色看成一个顶点,对于每个珠子在两个颜色之间连一条无向边,然后求欧拉回路. #include <cstdio> #include <cstring> + ; int G[ ...
- MVC+Ef项目(4) 抽象业务逻辑层BLL层
接下来,我们就要到业务逻辑层了,简单的说,业务逻辑层就是调用Repository(可以看做是DAL数据库访问层) 先来看看项目的架构 我们现在就开始来做BLL层. 同样,先编写 UserInfoS ...
- java动态代理Proxy
package com.gz_06; public interface StudentDao { public void login(); public void regist(); } packag ...
- QCon 2015 阅读笔记 - 团队建设
QCon 2015阅读笔记 QCon 2015 阅读笔记 - 移动开发最佳实践 QCon 2015 阅读笔记 - 团队建设 中西对话:团队管理的五项理论和实战 - 谢欣.董飞(今日头条,LinkedI ...
- 基于jquery框架的ajax搜索显示
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- mysql里group by按照分组里的内容的排序
得到一张表里按u_id分组,按count(id)排序,每个分组的pub_time最大的哪些记录,只取count(id)最大的4条 select a.u_id,a.name,a.u_name,a.id, ...
- 将UE添加到右键菜单
1.新建UE.reg文件,将如下代码拷贝进去.注意UE安装路径 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT*shell] [HK ...