• Hibernate基础配置(二)


    7.表名和类名不同,对表名进行配置     

      用annotation时,实体类名和数据库表名不同时,可以用@Table(name="_teacher")注明 ,当映射到Teacher这个类时就会去找数据库中_teacher这个表

      用xml文件,<class name="Student" table="_student">用table指明表名

     

    8.字段名和属性名相同

      默认@Basic,就是说字段上没写任何注解时,相当于加了@Basic这个注解

     

    9.字段名和属性名不同

      用annotation时,用@Column(name="_name")指定对应的字段名

      在xml里面,用 <property name="name" column="column_name"></property>

     

    10.不需要持久化的字段

      使用annotation时,用@Transient注明,这样就不会存到数据库表里面去了

      在xml里面就不用写进去了

     

    11.时间和日期类型,指定时间精度

      在java类里面定义一个时间类型往往用Date类型,包括了日期和时间。在数据库表里,默认的会存为datetime类型,日期和时间都保存了。如果只想保存日期或者只想保存时间,可以使用注解@Temporal(TemporalType.DATE)。在数据库中,表示时间类型的数据有DATE, TIME, 和 TIMESTAMP三种精度(即单纯的日期,时间,或者两者兼备). 可使用@Temporal注解来调整精度。学习的时候可以通过查文档与实际操作结合。

      在xml中,写在property里面,用type="TIME"、type="DATE"、type="TIMESTAMP"。

    Hibernate内置映射类型

    Hibernate映射类型 Java类型 标准SQL类型 大小
    integer/int java.lang.Integer/int INTEGER 4字节
    long java.lang.Long/long BIGINT 8字节
    short java.lang.Short/short SMALLINT 2字节
    byte java.lang.Byte/byte TINYINT 1字节
    float java.lang.Float/float FLOAT 4字节
    double java.lang.Double/double DOUBLE 8字节
    big_decimal java.math.BigDecimal NUMERIC  
    character java.lang.Character/java.lang.String/char CHAR(1) 定长字符
    string java.lang.String VARCHAR 变长字符
    boolean/ yes_no/true_false java.lang.Boolean/Boolean BIT 布尔类型
    date java.util.Date/java.sql.Date DATE 日期
    timestamp java.util.Date/java.util.Timestamp TIMESTAMP 日期
    calendar java.util.Calendar TIMESTAMP 日期
    calendar_date java.util.Calendar DATE 日期
    binary byte[] BLOB

    BLOB
    text java.lang.String TEXT CLOB
    serializable 实现java.io.Serializablej接口的任意Java类 BLOB BLOB
    clob java.sql.Clob CLOB CLOB
    blob java.sql.Blob BLOB BLOB
    class java.lang.Class VARCHAR 定长字符
    locale java.util.Locale VARCHAR 定长字符
    timezone java.util.TimeZone VARCHAR 定长字符
    currency java.util.Currency VARCHAR 定长字符

    在大多数情况下都没有必要指定类型,由hibernate自动默认帮我们实现就可以了。

    12.映射枚举类型

      在annotation中用@Enumerated(EnumType.ORDINAL)存的是下标值或@Enumerated(EnumType.STRING)存的是字符串

      xml中使用比较麻烦

      

    13.字段映射的位置

      有人放在field前面,也有人放在get方法前面,为了不破坏java的封装性,我们放在get方法前面。

    保持field与get/set方法一致。

  • 相关阅读:
    [Java入门] 从键盘输入两个整数,求最小公倍数并输出
    【C#食谱】【面食】菜单3:用泛型替代ArrayList
    C# Stable Sort(稳固排序)
    【C#食谱】【面食】菜单4:List和LinkedList性能比较
    一个非常酷的应用:修改“开始”菜单的显示文本
    我的第一个5年计划
    C#语言重要常识
    决定执行力的49个细节
    .NET资源链接
    标准表达式中数据类型不匹配(Access 时间格式)
  • 原文地址:https://www.cnblogs.com/ligui989/p/3450965.html
Copyright © 2020-2023  润新知