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
- 保存方法:
Serializable save(Object obj);
- 查询方法:
T get(Class c,Serializable id);
T load(Class c,Serializable id);
- 修改方法
void update(Object obj);
- 删除方法
void delete(Object obj);
- 保存或更新
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语句