1.Configuration
代码:
Configuration cfg = new Configuration();
cfg.configure();
功能:
创建对象(第一行代码)。到src下面找到名字为hibernate.cfg.xml的文件,并且将文件放入到对象中去(第二行代码)。也叫做加载核心配置文件
2.SessionFactory(重点)
使用configuration对象可以创建SessionFactory对象
(1)创建SessionFactory过程中做的事情
根据核心配置文件中,数据库的配置和映射文件的配置,到数据库中把对应的表创建出来,前提在配置中设置自动创建表,代码如下:
<property name="hibernate.hbm2ddl.auto">update</property>
(2)因为创建SessionFactory对象的过程中,需要对数据库的表进行创建和更新,所以这个过程特别耗费资源。则呢么解决?
方案:在hibernate操作用,建议一个项目只创建一个SessionFactory对象
具体实现: 写工具类,写静态代码块实现。静态代码块只在类加载的时候执行一次。
代码示例:
public class hibernateUtils {
static Configuration cf = null;
static SessionFactory sf = null;
//静态代码块实现
static {
cf = new Configuration();
cf.configure();
sf = cf.buildSessionFactory();
}
//静态方法 可以通过类名调用,更加方便
public static SessionFactory getSessionFactory() {
return sf;
}
}
3.Session(重点)
(1)session相当于jdbc的connection
(2)调用session中不同的方法实现crud操作。添加save,修改update以及删除 delete,根据id查询get。
(3)session对象是单线程对象,只能自己使用,不能共用。
4.Transcation事务对象
开启事务
//s是session的对象
Transcation t = s.beginTranscation();
事务的提交和回滚方法
//提交
t.commit();
//回滚
t.rollback();
事务4个特性:
原子性:事务内的操作,要么都成功,要么都失败
一致性:操作前后的数据总量保持一致
隔离性:不同的事务之间不相互影响
持久性:事务结束后,结果提交到数据库,具有持久性