分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

hibernate课程 初探单表映射2-4 transaction简介

发布时间:2023-09-06 01:34责任编辑:沈小雨关键词:暂无标签

1    hibernate是非自动提交。如果transaction不写的话,会只创建表结构而不插入语句。

      如果不写transaction而想实现插入的功能的话,需要重写session的dowork方法(记得flush)。

2    demo:

package hibernate_001;

import java.sql.Array; import java.sql.Blob; import java.sql.CallableStatement; import java.sql.Clob; import java.sql.DatabaseMetaData; import java.sql.NClob; import java.sql.PreparedStatement; import java.sql.SQLClientInfoException; import java.sql.SQLException; import java.sql.SQLWarning; import java.sql.SQLXML; import java.sql.Savepoint; import java.sql.Statement; import java.sql.Struct; import java.util.Date; import java.util.Map; import java.util.Properties; import java.util.TimeZone; import java.util.concurrent.Executor;

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;

import com.ddwei.student.Student; import com.mysql.jdbc.Connection; import com.mysql.jdbc.ExceptionInterceptor; import com.mysql.jdbc.Extension; import com.mysql.jdbc.MySQLConnection; import com.mysql.jdbc.log.Log;

public class StudentTest {    private SessionFactory sessionFactory;  private Session session;  private Transaction trasaction;    @Test  public void testSaveStudent(){   Student student =new Student(3,"周恩来","男",new Date(),"绍兴");//创建学生对象   session.save(student);//会话保存学生对象进入数据库        }    @Before  public void init(){   //1  创建配置对象   Configuration config = new Configuration().configure();   //2  创建服务对象   ServiceRegistry serviceRe = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();      //3  创建会话工厂   sessionFactory = config.buildSessionFactory(serviceRe);      //4  打开会话   session = sessionFactory.openSession();   //5  创建事务 //  trasaction = session.beginTransaction();  }      @After  public void destroy(){ //  trasaction.commit();   session.doWork(new Work() {        @Override    public void execute(java.sql.Connection arg0) throws SQLException {     // TODO Auto-generated method stub     arg0.setAutoCommit(true);         }   });   session.flush();   session.close();   sessionFactory.close();  }  

}

hibernate课程 初探单表映射2-4 transaction简介

原文地址:https://www.cnblogs.com/1446358788-qq/p/8182027.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved