Hibernate 的重要API

Configuration 配置对象

用于Hibernate框架加载映射文件

//  加载配置文件
Configuration cfg = new Configuration().configure();
//默认到src下寻找hibernate.cfg.xml
//  自定义加载配置文件
Configuration cfg = new Configuration().configure("文件位置");

SessionFactory: Session工厂对象

它负责Hibernate的初始化和建立session对象,SessionFactory内部维护了Hibernate的连接池和Hibernate的二级缓存。是线程安全的对象。一个项目创建一个对象即可。

SessionFactory实例通过cfg对象获取

//2.创建一个SessionFactory
SessionFactory sessionFactory = cfg.buildSessionFactory();

存在内置连接池也支持第三方连接池 比如c3p0
需要导入c3p0 两个架包 和 hibernate 一个支持c3p0的架包
在这里插入图片描述

Session

在这里插入图片描述
Session代表的是Hibernate与数据库的链接对象。不是线程安全的
Session中的API

  1. 保存方法:

Serializable save(Object obj);

  1. 查询方法:

T get(Class c,Serializable id);

T load(Class c,Serializable id);

  1. 修改方法

void update(Object obj);

  1. 删除方法

void delete(Object obj);

  1. 保存或更新

void saveOrUpdate(Object obj);

Transaction:事务对象

//开启事务
Transaction tx = session.beginTransaction();

// 事务提交
tx.commit();//如果提交前失败 自动回滚
//事务回滚
tx.rollback();

Query

Query 是一个接口用于接收HQL ,而查询多个对象

//通过session得到Query接口
String hql = "***";
Query query = session.createQuery(hql);
//接收数据
List<该持续化类> list = query.list();
//输出 等
...
//事务提交
tx.commit();

条件查询

String hql = "from table_name where 属性名 like ?";
Query query = session.createQuery(hql);
query.setParameter(0,"条件");//hibernate 是从0开始的,DBUtils是从从1开始

Criteria

  • Criteria (Query By Criteria) 面向对象查询
Criteria criteria = session.createCriteria();
List<lei> list = criteria.list();

加入条件

Criteria criteria = session.createCriteria();
criteria.add(Restrictions.like("属性","条件"));
List<lei> list = criteria.list();

SQLQuery

接收SQL语句

猜你喜欢

转载自blog.csdn.net/qq_40435621/article/details/87627000