hibernate配置类的映射

1.隐射文件的配置

    每一个model都有个一个相应的隐射文件,命名规范:模型类.hbm.xml, 位置可以任意,但是建议放在model的同级包下。

  • class:映射类

    属性:

           name:要映射的model的全路径

           table:model映射到数据库的表名

2.属性的映射

property:属性的映射

属性:

       name:模型类的属性名

       column:映射到表中的列名

       type:hibernate提供的数据类型,可以由java的数据类型转换成数据库中的数据类型

       length:映射到数据库中的字段的长度

       not-null:非空,true false

       unique-key: 唯一约束的键名3.主键映射

<!--id
    是主键映射的配置
-->
<id name="userId" column="user_id">
    <!--generator主键映射的策略-->
    <generator class="assigned"></generator>
</id>

映射策略:

     assigned:手动指定id,在实际项目中基本不用

     increment:通过获得当前id的最大值的方式然后在最大值上加1来指定主键,在实际项目中不去使用,因为有并发安全问题   

Hibernate: select max(user_id) from t_user
Hibernate: insert into t_user (uname, gender, birthday, user_id) values (?, ?, ?, ?)
  • 如:下图如果A先插入数据库中的主键最大值就是2,B这时来插入就出现了主键重复。

         identity:使用mysql的自增,前提是model类的oid是数值类型,映射column也是数值类型。这种自增没有并发问题,因为主键的自增策略是由数据库管理(有锁机制)。

         sequence:是Oracle数据库的自增策略。

         native:是智能的自增策略,会根据数据库的方言来翻译到底是identify/sequence

         uuid:通过hibernate生成一个32位的不重复的字符串,要求oid是字符串类型,相应的数据的id也是varchar,这种策略在实际项目中大量使用。

         建议使用uuid,性能高。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值