Hibernate的介绍

简介

hibernate的前缀可以省略,即:hibernate.dialect等同于dialect

session可以理解为数据库对象

session与connection,是多对一的关系,每个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用

hibernate对数据操作都是封装在事务当中,并且默认是非自动提交的方式。所以用session保存对象,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中


openSession()和getCurrentSession()的区别

1.getCurrentSession在事务提交或者回滚之后会自动关闭,而openSession需要手动关闭。如果没有关闭,多次之后导致连接池溢出。

2.openSession每次创建新的session对象,getCurrentSession()使用现有的session对象


hbm配置文件常用设置

主键生成策略

  1.单一主键

    assigned :由Java应用程序负责生成(手工赋值)

     native:由底层数据库自动生成标识符,Mysql:increment,Oracle:sequence。

 


get方法和load方法的区别

  1.在不考虑缓存的情况下,get方法会在调用之后立即发送SQL语句,返回持久化对象。

  2.load方法只返回一个代理对象,该代理对象只保存了实体对象的id,直到使用实体对象的非主键属性时,才会发送SQL语句。

  3.查询数据库不存在的数据时,get方法会返回null,load方法会返回异常ObjectNotFoundException

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值