含义:是一个对象关系映射(Object Relational Mapping,简称ORM)的持久化框架,通过操作对象来操作数据库。
准备工作:
1>新建表
2>新建Model
3>导包
注意:记得buildpath
4>编写Hibernate配置文件(直接参考project/etc)
②映射配置文件
5>使用
DQL:步骤
创建配置对象Configuraction configuration=new Configuration();
加载配置文件configuration.configure();
创建SessionFactory [DataSource] SessionFactory sessionFactory=configuration.buildSessionFactory();
创建Session [Connection]sessionFactory.openSession();
操作
关闭session session.close();
关闭sessionFactory sessionFactory.close();
DML:步骤
创建配置对象Configuraction configuration=new Configuration();
加载配置文件configuration.configure();
创建SessionFactory [DataSource]SessionFactory sessionFactory=configuration.buildSessionFactory();
创建Session [Connection]sessionFactory.openSession();
操作
|--开启事物 session.beginTransaction();
|--提交\回滚事物 session.getTranSaction().commit()session.getTranSaction().rollback()
关闭session session.close();
关闭sessionFactory sessionFactory.close();
6>hibernate常用API
①Configuration
Hibernate4.X之前
Hibernate4.X之后
Hibernate4.X:建议将配置信息放到hibernate.properties文件中
②SessionFactory
含义
|--数据库的连接信息是配置SessionFactory(类似DataSource)
|--负责创建Session对象
|--线程安全的,Session是线程不安全的,创建要很大的开销,一般一个应用一个即可。
常用方法
|--openSession
|--创建全新的session
|--全新的一级缓存
|--全新的事物
|--getCurrentSession
|--若当前线程的ThreadLocale中存在,则直接使用;若没有则使用openSession创建一个,并且放入ThreadLocale中
thread
|--getCurrentSession得到的session
|--无论是DML还是DQL ,都必须开启事务
|--当事务提交或回滚,session自动被关闭,因此不需要调用再次session.close(),否则报错。
③Session
含义:线程不安全,主要用来操作数据的,内部提供一级缓存功能,一级缓存随之session关闭而销毁
获取方式
|---SessionFactory的openSession
|--SessionFactory的getCurrentSession
常用方法
|--操作数据
|--get
|--createQuery
|--save
|--delete
|--update
|--操作事物
|--beginTransaction//设置事物开启状态
|--getTransaction//获取事物对象
|--缓存相关
|--contains(Object object) //判断对象是否在缓存中
|--evict(Object object)//删除指定的缓存
|--clear()//清空全部一级缓存
④Transaction
含义:操作事物对象
相关方法
|--begin开始事物
|--commit提交
|--rollback回滚
⑤openSession
⑥getCurrentSession
领取专属 10元无门槛券
私享最新 技术干货