【J2EE学习笔记】Hibernate的工厂和会话的创建

Hibernate的核心接口

Hibernate的核心接口有5个:Configuration、SessionFactory、Session、Transaction和Query。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事物控制。

1、Configuration接口

Configuration负责管理Hibernate的配置信息,比如:数据库URL、数据库用户名、数据库密码、数据库JDBC驱动类、数据库dialect。当调用

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

Hibernate会自动在目录下搜索hibernate.cfg.xml文件,并将其读取到内存中作为后序操作的基础配置

2、SessionFactory接口

SessionFactory负责创建Session实例,可以通过Configuration实例构建SessionFactory

SessionFactory sessionFactory=configuration.buildSessionFactory();

SessionFactory一旦构造完毕,即被赋予特定的配置信息,无法更改,只能再新建。

SessionFactory保存了对应当前数据库配置的所有映射关系,同时也负责维护当前的二级数据缓存和StatementPool。SessionFactory采用了线程安全的设计,可由多个线程并发调用。

3、Session接口

Session是Hibernate持久化操作的基础,提供了众多持久化方法,如sava、update、delete等。通过这些方法,可以完成对象的增加、删除、修改、查找等操作。注意Session是非线程安全的,一个Session实例同时只能由一个线程使用,通过SessionFactory构建:

Session session=sessionFactory.openSession();

4、Transaction接口

Transaction是Hibernate中进行事务操作的接口,Transaction接口是对实际事务实现的一个抽象。事务对象通过Session创建

Transaction transaction=session.beginTransaction();

5、Query接口

Query接口用于执行HQL语句。

Query query=session.createQuery("from Kcb where kch=?");
query.setString(0,"要设置的值");

还可以用setParameter()方法,这样不管是什么类型的参数都可以应用。

Query可以通过set函数来设置问号中的值,还可以用“:”后跟变量的方法来设置参数,上述可改为:

Query query=session.createQuery("from Kcb where kch=:kchValue");
query.setString("kchValue","要设置的值");
Query还有一个list()方法,用于取得一个List集合的示例。

//创建配置对象
Configuration configuration=new Configuration().configure();//创建会话工厂
SessionFactory sessionFactory=configuration.buildSessionFactory();
//创建会话对象
Session session=sessionFactory.openSession();
//开启事务
Transaction transaction=session.beginTransaction();

来创建工厂和会话,然后就可以实例化调用对应的持久对象来进行数据库的操作了,最后记得

transaction.commit();//提交
session.close();//会话关闭
sessionFactory.close();//工厂关闭


猜你喜欢

转载自blog.csdn.net/q418030645/article/details/80721105