Hibernate 03 : 单表映射

1.目标:将一个Java类映射为一个数据库表
2.主键生成方式
结论:绝大部分情况下建议使用native方式生成主键
②increment
[1]由Hibernate提供一个自增的值作为主键。
[2]Hibernate的算法是:先读取当前数据库表中主键列的最大值,在此基础上+1,作为新的主键值。
[3]在并发情况下,假设有两个线程T1和T2
  • T1读取了最大值为50
  • T2读取了最大值为50
  • T1在50的基础上+1得到51
  • T2在50的基础上+1得到51
  • T1使用51作为主键值保存到数据库中,成功
  • T2也想使用51作为主键值保存到数据库中,但主键值已经存在,失败
③hilo
[1]由Hibernate根据“高低算法”生成主键值,不依赖于任何底层数据库
[2]缺陷是需要额外维护一个数据库表
④identity
[1]由数据库负责生成自增主键
[2]缺陷是要求数据库必须支持自增主键才可以
⑤sequence
[1]由数据库负责根据序列生成主键
[2]缺陷是要求数据库必须支持序列才可以
⑥native 自动根据底层数据库对自动生成主键值的能力,智能的选择identity或sequence,如果identity或sequence都不支持,则使用hilo方式。
⑦assigned
[1]由程序员自己提供主键的值
[2]如果没有指定主键值,则会抛出异常
3.映射普通属性

4.映射日期类型
结论:在Java类中,日期类型建议使用java.util.Date类型,因为使用这个类型可以灵活的生成如下几种类型的日期格式
  • yyyy-MM-dd
  • yyyy-MM-dd hh:mm:ss
  • hh:mm:ss
5.映射大对象
①文本:Clob/String
在Hibernate映射类型中对应text
②字节:Blob
在Hibernate映射类型中对应blob

6.映射派生属性
①概念:一个类中的某个属性值可以通过其他属性值计算得到。
②映射派生属性时可以告诉Hibernate计算派生属性的方法,这样派生属性就可以不必映射为数据库表中的列,读取时Hibernate会自动计算派生属性的值

7.hbm文件中的其他设置
①提取包名
< hibernate-mapping package = "com.atguigu.hibernate.bean" >
经过上面设置之后,当前hbm文件中使用这个package内的类就使用简单类名即可
②动态插入/更新:目的简化SQL语句
配置方式
< class   ...   dynamic-insert = "true" >

生成的SQL
    insert
    into
        BOOKS
        (PRICE)
    values
        (?)
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值