zoukankan      html  css  js  c++  java
  • 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方法一致。

  • 相关阅读:
    python学习之调试:
    python学习之调试 错误捕捉及处理
    python之面向对象
    python学习之模块:
    python学习之内部函数:
    python学习之高级特性:
    python学习之结构语句
    python学习之列表元组,字典
    getopt使用例子
    找到系统盘被打满文件
  • 原文地址:https://www.cnblogs.com/ligui989/p/3450965.html
Copyright © 2011-2022 走看看