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 ...
随机推荐
- hdu 1044(bfs+状压)
非常经典的一类题型 没有多个出口.这里题目没有说清楚 Collect More Jewels Time Limit: 2000/1000 MS (Java/Others) Memory Limi ...
- Mvc 自带分页控件PagedList.Mvc Demo示例
添加/下载PagedList.Mvc 直接搜索mvc pagelist 就会出来.安装完成即可.在项目的packages文件夹下面就会出现PagedList.Mvc.4.5.0.0 和PagedLis ...
- hdu 4619 Warm up 2 网络流 最小割
题意:告诉你一些骨牌,然后骨牌的位置与横竖,这样求最多保留多少无覆盖的方格. 这样的话有人用二分匹配,因为两个必定去掉一个,我用的是最小割,因为保证横着和竖着不连通即可. #include <s ...
- VS启用IIS调试的方法及可能碰到的问题。
经常有这种情况, 开发机本地正常, 但是一旦发布到服务上后, 就出现各种问题. 这是由于开发机和服务器环境不一样造成的, 所以开发时要尽可能的模拟真实性. 这时候, VS的这个功能就帮大忙了. 如何 ...
- 最全的Android源码目录结构详解(转)
Android 2.1|-- Makefile|-- bionic (bionic C库)|-- bootable (启动 ...
- 【英语】Bingo口语笔记(44) - 进餐时的表达
- Hibernate-Criteria Queries
1.实例 接口org.hibernate.Criteria针对特殊持久层类进行查询,Sesion是Criteria的工厂: Criteria crit = sess.createCriteria(Ca ...
- SSH框架面试题
Hibernate工作原理及为什么要用? 原理: 1. 读取并解析配置文件 2. 读取并解析映射信息,创建SessionFactory 3. 打开Sesssion 4. 创建事务Transation ...
- Servlet中response.sendRedirect()跳转时不能设置target的解决办法
一般使用Struts2的拦截器(或者是filter)验证是否登录的时候,如果用户没有登录则会跳转到登录的页面.这时候一般可以在拦截器或者filter中用response.sendRedirect(). ...
- myeclipse10添加jQuery自动提示
首先先要在装上spket插件,这个网上有好多教程,我就不详细说了,主要说一下后面的设置,因为我发现我按照网上的装完也设置完没办法使用自动提示功能,以下是我根据前辈的经验然后自己摸索出来的: 选中所建的 ...