通过Hibernate实现添加功能

package com.demo.dao;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.demo.Login;

public class LoginDAO {
    
    private Session session=null;
    private Transaction tran=null;
    
    public LoginDAO(){
        //创建Configuration对象
        Configuration config = new Configuration().configure();
        //创建Session工厂
        SessionFactory sessionFactory = config.buildSessionFactory();
        //得到Session对象
        session = sessionFactory.openSession();
    }
    
    public void save(Login login){
        try {
            //开启事务
            tran=session.beginTransaction();
            //将传递进来的login对象存入数据库
            session.save(login);
            //提交事务
            tran.commit();
            //提示信息
            System.out.println("用户信息保存成功!");
        } catch (RuntimeException e) {
       //捕获并处理异常
       if(null!=tran){tran.rollback;}
throw e; }finally{ //关闭Session对象 session.close(); } } }

  在这个类中用到了Session和Transaction对象,这里的Session对象是hibernate3.jar包中的Session对象,对数据库的所有操作都要通过Session来完成。Transaction对象用来处理对数据库操作的事务。

  在构造方法中实例化Session对象。实例化的过程是,首先找到Hibernate配置,然后从配置中取出SessionFactory,也就是Session工厂,最后从SessionFactory中取出Session。向login表中添加数据的save()方法是将Login类型的对象login作为形参传入方法中。在对数据库操作的时候有可能会抛出运行时异常,所有用try-catch结构来捕获异常。然后进行login 表的添加操作。

  进行添加操作时,首先实例化Transaction对象,就是开启事务。然后调用Session对象的save()方法,并将Login类型的对象传入该方法。接下来就是调用事务对象的commit()方法提交到数据库,并关闭Session对象。如果出现异常,就会将事务进行回滚。

  回顾实现添加的功能,总结一下在Hibernate中执行持久化操作的步骤:

  1> 读取并解析配置文件:

  Configuration config = new Configuration().configure();

  2> 读取并解析映射信息,创建SessionFactory:

  SessionFactory sessionFactory = config.buildSessionFactory();

  3> 打开Session:

  session = sessionFactory.openSession();

  4> 开启事务(增,删,改操作必须有,查询操作可选):

  tran = session.beginTransaction();

  5> 持久化操作:

  session.save(login);

  6> 提交事务:

  tran.commit();

  7> 关闭Session:

  session.close();

原文地址:https://www.cnblogs.com/leny/p/4799704.html