• 06-Hibernate中的持久化类


    持久化类:实体类 + 映射文件

    持久化类是有编写规范:

        • * 提供一个无参数 public访问控制符的构造器        :用到反射.
        • * 提供一个标识属性,映射数据表主键字段           :

    * java区分两个对象是否是同一个使用 地址.

    * 数据库区分两条记录是否一致:使用  主键.

    * Hibernate中区分持久化对象是否是同一个,根据唯一标识:

        • * 所有属性提供public访问控制符的 set  get 方法  :框架中存值和取值的时候使用.
        • * 标识属性应尽量使用基本数据类型的包装类型

    * 使用基本数据类型:

    * 成绩表:

    学号     姓名     成绩

    1        张三     null

        • * 持久化类尽量不要使用final进行修饰                 :

    * 用final修饰的类是不能被继承.无法生成代理对象.(延迟加载的时候返回代理对象.延迟加载就失效.)

     

     

    建表的时候: 自然主键和代理主键:

    * 自然主键:

    * 创建一个人员表.人员表中某条记录唯一确定.人都有身份证号.我们可以使用身份证号作为主键.(身份证号本身就是人员的一个属性.作为主键.)

     

    * 代理主键:

    * 创建一个人员表.人员表中某条记录唯一确定.但是没有使用身份证号作为主键,新建字段(用新建的字段作为主键.只是一个标识作用.)

    * 尽量要Hibernate自己去维护主键:

    * 主键的生成策略:

    * increment  :自动增长.适合 short int long...不是使用数据库的自动增长机制.使用Hibernate框架提供的自动增长方式.

    * select max(id) from 表; 在最大值的基础上+1.(多线程的问题.)在集群下不要使用

     

    * identity       :自动增长.适合 short int long...采用数据库的自动增长机制.适合于Oracle数据库.

    * sequence   :序列.适用于 short int long ... 应用在Oracle上 .

    * uuid       :适用于字符串类型的主键.采用随机的字符串作为主键.

    * native     :本地策略.底层数据库不同.自动选择适用identity 还是 sequence.

    * assigned       :Hibernate框架不维护主键,主键由程序自动生成.

    * foreign        :主键的外来的.(应用在多表一对一的关系.)

  • 相关阅读:
    单词 统计
    第十周学习记录
    梦断代码阅读笔记03
    梦断代码阅读笔记02
    梦断代码阅读笔记01
    用户模板和用户场景
    第九周学习记录
    分享好友-分享朋友圈
    生命周期函数-页面刷新
    底部导航的设置
  • 原文地址:https://www.cnblogs.com/1963942081zzx/p/6516698.html
Copyright © 2020-2023  润新知