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();//工厂关闭