Hibernate的常用API详解
一、Configuration配置对象
Configuration:加载配置文件
1.1 调用configure()方法,加载src下的hibernate.cfg.xml文件
Configuration conf = new Configuration().configure();
1.2 如果配置文件不符合默认的加载规则,我们可以用:
new Configuration().configure(file); //通过file加载
new Configuration().configure(path); //通过路径加载
1.3 通过Configuration对象加载映射文件(不推荐,一般都将*hbm.xml映射文件配置到hibernate.cfg.xml中)
conf.addClass(User.class);
规范:1、orm映射文件名称应与实体的简单类名一致;
2、orm映射文件需要与实体的类在同一包下。
二、SessionFactory工厂
SessionFactory:用于管理所有的session
根据Configuration配置信息创建SessionFactory
SessionFactory sf = conf.buildSessionFactory();
SessionFactory是线程安全的,可以是成员变量,多个线程同时访问时,不会出现线程并发的问题。
三、Session会话
Session:通过操作PO对象实现增删改查
session的api:
方法 | 功能 |
---|---|
save | 保存 |
update | 更新 |
delete | 删除 |
get | 通过id查询,如果没有,显示 “null” |
load | 通过id查询,如果没有,抛异常 |
createQuery(“hql”) | 获得Query对象 |
createCriteria(Class) | 获得Criteria对象 |
session是单线程,线程不安全,不能编写成员变量。
四、Transaction事务
打开事务:
Transaction ts = session.beginTransaction();
获得事务(已经打开的事务对象):
session.getTransaction();
提交事务:
commit();
回滚事务:
rollback();
五、Query对象
Qyuery:主要用于Hibernate执行hql语句。
hql语句:hibernate提供的面向对象的查询语句,使用对象(类)和属性进行查询,区分大小写。
获得Query对象:Query query = session.createQuery(“hql”)
方法:
list():查询所有 List list = query.list();
uniqueResult():获得一个结果
setFirstResult(int):分页,开始索引数startIndex
setMaxResult(int):分页,每页显示的个数pageSize