Configuration:配置管理类对象
config.configure():加载主配置文件的方法(hibernate.cfg.xml),默认加载src/hibernate.cfg.xml
config.configure("cn/config/hibernate.cfg.xml"):加载指定路径下指定名称的主配置文件
config.buildSessionFactory():创建session的工厂对象
SessionFactory:session的工厂(或者说代表了这个hibernate.cfg.xml配置文件)
sf.openSession():创建一个session对象
sf.getCurrentSession():创建或取出session对象
Session:session对象维护了一个连接(Connection),代表了与数据库连接的会话。Hibernate最重要的对象;只要使用hibernate与数据库连接操作,都要用到这个对象。
session.beginTransaction():开启一个事务;Hibernate要求所有对数据库的操作都要有事务的环境,否则报错!
更新
session.save(obj):保存一个对象
session.update(obj):更新一个对象
session.saveOrUpdate(obj):没有设置主键执行保存,有设置主键更新;如果设置主键不存在报错!
主键查询
session.get(Object.class, 1);主键查询
session.load(Object.class, 1):主键查询(支持懒加载)
HQL查询
HQL查询与SQL查询区别:SQL查询的是表以及字段;HQL:hibernate query language即hibernate提供的面向对象的查询语言,查询的是对象以及对象的属性。区分大小写。
Criteria查询
也叫QBC查询,query by criteria 完全面向对象的查询
本地SQL查询
复杂的查询,就要使用原生态的SQL查询,也可以,就是本地SQL查询
缺点:不能跨数据库查询
Transaction:Hibernate事务对象
共性问题
ClassNotFoundException
缺少jar文件
如果程序已执行,也执行了SQL语句,但是数据库没有结果
事务是否没开启