Hibernate运行过程

扫盲:-----------------------------------------------------------------------------------
1.什么是对象持久化?
持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中。
-------------------------------------------------------------------------------------------

什么是Hibernate?
Hibernate,冬眠。对对象来说就是持久化。

Hibeinate的运行过程:


图1-1

Hibernate的运行过程:
1.应用程序先调用 Configuration类,该类读取Hibernate的配置文件及映射文件中的信息,并用这些信息生成一个 SessionFactory对象。
2.然后从SessionFactory对象生成一个 Session对象,并用Session对象生成 Transaction对象。可通过Session对象的get(),load(),save()等操作PO;
3.如果没有异常,Transactiion对象将提交这些操作结果到数据库。

代码:
public static void main(String[] args) {
		//代表了配置文件
		Configuration cfg = new Configuration().configure();
		//创建SessionFactory
		//SessionFactory factory = cfg.buildSessionFactory();
				
		//通过Session工厂获取session对象,session对象封装了数据库的JDBC连接
		Session session = factory.openSession();
		
		User user = new User();
		user.setUsername("张三");
		user.setPassword("123456");
		
		Transaction tx = null;
		//通过session开启一个事务
		try {
			tx = session.beginTransaction();
			
			//将user对象的数据保存到数据库,返回值就是主键
			Serializable userId = session.save(user);
			System.out.println("userId = " + userId);
			
			tx.commit();//提交事务
		} catch (Exception e) {
			e.printStackTrace();
			tx.rollback();//事务回滚
		} finally {
			session.close();//关闭session
			factory.close();//关闭factory
		}
	}
	
}

其中生成SessionFactory有两种方法:
方法一:
//代表了配置文件
Configuration cfg = new Configuration().configure();
//创建SessionFactory
//SessionFactory factory = cfg.buildSessionFactory();

方法二:
//代表了配置文件
Configuration cfg = new Configuration().configure();
//将配置信息注册为一个服务
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
SessionFactory factory = cfg.buildSessionFactory(serviceRegistry);

从图1-1可以看出Hibernate的核心组件:
a)Configuration类:用来读取Hiberate配置文件,并生成SessionFactory对象。
b)SessionFactory接口:产生Session实例。
c)Session接口:用来操作PO(持久化对象,Persistent Object)。它有get(),load(),save(),update()和delete()等方法用来对PO进行加载,保存,更新及删除等操作。它是Hibernate的核心接口。
d)Query接口:用来对PO进行查询操作,它可以从Session的createQuery()方法生成。
e)Transaction接口:用来管理Hibernate事务,它主要方法有commit()和rollback(),可以从Session的beginTransaction()方法生成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值