1、Configuration读取配置文件
1 2 3 4 5 6 7
   |  Configuration cfg = new Configuration();
  Configuration cfg1 = new Configuration().configure("hb.cfg.xml");
 
 
 
 
  | 
 
Configuration在一个应用中,最好写一个。通过configuration来创建SessionFactory对象【即使用单例】
2、SessionFactory对象
是一个session工厂。是一个重量级对象。在一个应用中最好也是单列的。是一个线程安全的。属于进程级别的对象。
1 2 3 4 5 6 7 8 9 10 11 12
   | 
 
 
 
 
 
 
  ServiceRegistry registry = new StandardServiceRegistryBuilder()                             .applySettings(cfg.getProperties())                             .build(); SessionFactory sf = cfg.buildSessionFactory(registry);
 
  | 
 
3、Session对象
- 使用hibernate进行数据库操作,主要使用session。
 
- Session可以理解为对Connection对象的一个包装。
 
- Session对象中提供了对数据库的crud操作。
 
- Session是一个线程不安全的对象。
 
- 生命周期非常短暂,一般和事务一一对应。
 
- Session又称为hibernate中的一级缓存。
 
- Session又是transaction对象的工厂。
 
4、Transaction对象
事务管理对象。通过session来获取到该对象。包括了事务的开启,事务的提交,事务的回滚。
1 2 3 4 5
   |  Transaction tx = session.beginTransaction();
  Transaction tran = session.getTransaction(); tran.begin();
 
  | 
 
事务和异常处理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
   | public static void main(String[] args) {     Configuration cfg = null;     SessionFactory sf = null;     Session session = null;     Transaction tx = null;     try{         cfg = new Configuration().configure();         ServiceRegistry registry = new StandardServiceRegistryBuilder()                               .applySettings(cfg.getProperties())                               .build();         sf = cfg.buildSessionFactory(registry);         session = sf.openSession();         tx = session.beginTransaction();         User u  = (User)session.get(User.class, 2);         System.out.println("name="+u.getName());                  tx.commit();     }catch (Exception e) {         e.printStackTrace();                  tx.rollback();     }finally{                  if(session!=null&&session.isOpen())         session.close();     } }
  | 
 
5、Query对象:条件查询
使用SQL语句进行数据库的crud语句操作
本文标题:Hello_Hibernate详解
文章作者:foreverSFJ
发布时间:2019-06-10 17:51:58
最后更新:2019-06-10 17:51:58
原始链接:Notes/Java/Persistence/Hibernate/Hello_Hibernate详解.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!