session简介

来源:互联网 发布:php引用 编辑:程序博客网 时间:2024/05/06 15:55

hibernate的执行流程:
这里写图片描述

  1. 首先创建一个configuration配置对象,来读取配置文档hibernate.cfg.xml
  2. 获得配置对象来创建SessionFactory对象,同时读取里面加载的对象关系映射文件
  3. 获得SessionFactory对象来创建Session对象(类似JDBC的Connection),获得了session对象就表示获得了一个数据库连接对象,就可执行相应的增、删、改、查方法。(注:在执行某一个session对象方法时,必须开启一个事务,这些方法都要封装在事务中)
  4. 在执行完方法后,必须先提交事务,再关闭session

session:hibernate是对JDBC的一个封装,不建议直接使用jdbc的connection操作数据库,而是通过使用session操作数据库。session就是操作数据库的对象。那么在用hibernate操作数据库之前,就必须获得一个session实例。

session与jdbc connection的关系:session与connection是多对一的关系,每个session都有一个与之对应的connection对象,一个connection不同时刻可以供多个session使用。

session的方法:

  • save() :增
  • update() :删
  • delete() :改
  • createQuery() :查
import java.util.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;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(1,"张三丰","男",new Date(),"武当山");        //保存对象进入数据库        session.save(s);    }}
0 0
原创粉丝点击