标签:
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();
标签:
原文地址:http://www.cnblogs.com/leny/p/4799704.html