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 许可协议。转载请注明出处!