transaction简介
来源:互联网 发布:药物合成工艺优化 编辑:程序博客网 时间:2024/05/25 01:35
transaction:事务。在执行某个session方法时,必须将其放在一个事务之中。hibernate对数据的操作都是封装在事务当中,并且默认是非自动提交的方式来处理。所以用session保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中。
JDBC是默认自动提交事务,若想hibernate像jdbc那样自动提交事务,必须调用session对象的doWork()方法,获得jdbc的connection后,设置其为自动提交事务模式。就可在hibernate中不使用事务(此方法不推荐)
注:实现doWork()方法,重写里面的execute()方法。调用session.save()后,还要调用session.flush()来强制输出sql语句。
import java.sql.Connection;import java.sql.SQLException;import java.util.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.jdbc.Work;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.After;import org.junit.Before;import org.junit.Test;//测试类public class StudentsTest { private SessionFactory sessionFactory; private Session session; private Transaction transaction; @Before public void init(){ //初始化 //创建配置对象 Configuration config=new Configuration().configure(); //创建服务注册对象 ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //创建会话工厂对象 sessionFactory=config.buildSessionFactory(serviceRegistry); //会话对象,打开会话 session=sessionFactory.openSession(); //打开事务// transaction=session.beginTransaction(); } @After public void destory(){ //释放资源 //提交事务// transaction.commit(); //关闭会话 session.close(); //关闭会话工厂 sessionFactory.close(); } @Test public void testSaveStudents(){ //生成学生对象 Students s=new Students(3,"张三丰","男",new Date(),"武当山"); session.doWork(new Work() { @Override public void execute(Connection connection) throws SQLException { //重写方法 // TODO Auto-generated method stub connection.setAutoCommit(true); //设置自动提交 } }); //保存对象进入数据库 session.save(s); session.flush(); //强制输出sql语句 }}
这样不用在hibernate中使用事务,可将数据存储在数据库中。
0 0
- transaction简介
- transaction简介
- Spring Transaction配置简介
- Transaction-事务简介
- hibernate的transaction简介
- AUTONOMOUS TRANSACTION(自治事务)简介
- Transaction
- Transaction
- Transaction
- transaction
- Transaction
- Transaction
- Transaction
- Transaction
- @Transaction
- transaction
- Transaction
- Hibernate进阶篇(三)——transaction简介
- struts令牌机制
- Java中反射知识的理解介绍
- Scala10
- poj 3348 Cows
- Hive安装
- transaction简介
- 2016年之年中总结
- Best Time to Buy and Sell Stock II
- 用Java语言写的万年历的小程序
- 《学术研究,你的成功之道》 读书笔记
- 删除rman备份
- 创建虚拟sdcard.img + 读取sdcard卡中的文件路径有效
- atom安装插件被墙问题
- Java 封装update,Class使用