Hibernate学习笔记之二

Hibernate学习笔记之二

hibernate的执行流程

  • Configuration对象读取hibernate.cfg.xml文件,创建SessionFactory对象
  • SessionFactory对象读取加载的对象-关系映射文件,以此创建Session对象
  • Session对象实现数据库的增删改查,需要开启事务,封装在事务当中
  • 最后需要提交事务并关闭SessionFactory和Session

session简介

  • 不建议使用jdbc的connection对象操作数据库,而使用session来操作数据库
  • session与connection是多对一的关系,多个session对应一个connection
  • 把对象保存到数据库中需要调用session的各种方法,如:sava()、update()、delete()、createQuery()等。

transaction简介

  • hibernate对数据的操作都是封装在事务中,默认非自动提交(可以调用session对象的doWork()方法获得jdbc的connection后,设置为自动提交事务模式,不建议

session详解

如何获得session对象

  • openSession()或者getCurrentSession()(使用getCurrentSession()需要在hibernate.cfg.xml文件中进行相应配置)
<property name="hibernate.current_session.context_class">thread|jta</property>
//thread本地事务(jdbc事务)
//jta全局事务(jta事务)
  • openSession()与getCurrentSession()区别
    1)getCurrentSession()在事务提交或者回滚后自动关闭,而openSession()需要手动关闭。openSession()未手动关闭,多次之后会导致连接池溢出。
    2)openSession()每次新建新的session对象,getCurrentSession()每次使用已有的session对象。

hbm配置文档常用设置

<hibernate-mapping
schema="schemaName"                         //模式名称
catalog="catalogName"                       //目录名称
default-cascade="cascade_style"             //级联风格  
default-access="field|property|ClassName"   //访问策略
default-lazy="true|false"                   //加载策略
package="packageName"                       //包名
/>
<class
name="ClassName"            //类名
table="tableName"           //对应的表名
batch-size="N"              //抓取策略,一次抓取N条记录
where="condition"           //抓取条件
entity-name="EntityName"    //支持同一个类映射多个表
/>
<id                                     //表的主键
name="propertyName"                     //映射的属性
type="typeName"                         //映射的属性的数据类型
column="column_name"                    //映射的数据库中字段名称
length="length"                         //字段长度
<generator class="GeneratorClass"/>     //主键生成策略
/>

主键生成策略
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值