Hibernate类型映射之内置类型映射
Hibernate的类型映射类型从总体上可以分为两种:内置类型映射和客户类型映射。内置类型映射负责把一些常见的java类型映射到sql类型:此外,Hibernate还允许用户实现UserType或CompositeUserType接口,来灵活的制定客户化映射类型。客户类型映射可以将用户定义的java类映射到数据库表的相应字段。内置类型映射:(1)???Java基本类型的Hibernate映射:表2.1列出了Hibernate中的映射类型和与其对应的Java类型以及对应的标准SQL类型和相应的说明。?表2.1Hibernate映射类型Java类型标准SQL类型说明integer或者intint或者java.lang.IntegerINTEGER4字节longlong或者java.lang.LongBIGINT8字节shortshort或者java.lang.ShortSMALLINT2字节bytebyte或者java.lang.ByteTINYINT1字节floatfloat或者java.lang.FloatFLOAT4字节,单精度浮点数doubledouble或者java.lang.DoubleDOUBLE8字节,双精度浮点数big_decimaljava.math.BigDecimalNUMERICNUMERIC(8,2)表示共8位数字,其中两位是小数characterchar或者java.lang.Character,java.lang.String?CHAR(1)定长字符stringjava.lang.StringVARCHAR变长字符booleanboolean或者java.lang.BooleanBIT布尔类型yes_noboolean或者java.lang.BooleanCHAR(1)(‘Y’?或者’N’)布尔类型true_falseboolean或者java.lang.BooleanCHAR(1)(‘T’?或者’F’)布尔类型???????2、Java时间和日期类型的Hibernate的类型映射:?在Java中,代表时间和日期的类型包括:java.util.Date?和?java.util.Calendar。此外在JDBC API中还提供了三个扩展了java.util.Date类的子类:java.sql.Date?和?java.sql.Time?以及?java.sql.Timestamp,这三个类分别和标准sql类型中的DATE,TIME,TIMESTAMP相对应。?表2.2列出了Hibernate中的映射类型和与其对应的Java日期类型以及对应的标准SQL类型和相应的说明。表2.2映射类型Java类型标准SQL类型说明datejava.util.Date或者java.sql.DateDATE代表日期:形势为YYYY-MM-DDtimejava.util.Date或者java.sql.TimeTIME代表时间:形式为HH:MM:SStimestampjava.util.CalendarTIMESTAMP代表时间和日期,形式为YYYYMMDDHHMMSScalendar同上同上同上calendar_datejava.util.CalendarDATE代表日期:形势为YYYY-MM-DD??字段类型映射配置事例:?<property name=”name” column=”Name” type=”string”/>?<property name=”birthday” column=”Brithday” type=”date”/>?<property name=”registereddate” column=”Registereddate” type=”timestamp”/>下图为以上配置对应的数据库表:Name????????? varchar2(20)?Birthday?????? DATE?Registereddate?Timestamp????3、JDK自带的个别Java类的Hibernate映射类型:表2.3列出了个别Java类的Hibernate映射类型,与此对应的标准SQL类型均为VARCHAR类型。?表2.3映射类型Java类型标准SQL类型classjava.lang.ClassVARCHARlocalejava.util.LocaleVARCHARtimezonejava.util.TimeZoneVARCHARcurrencyjava.util.CurrencyVARCHAR?
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1667224