- 1、本文档共2页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hibernate映射类型分为两种:内置的映射类型和客户化映射类型。内置映射类型负责把一些常见的Java类型映射到相应的SQL类型;此外,Hibernate还允许用户实现UserType或CompositeUserType接口,来灵活地定制客户化映射类型1.内置映射类型1).Java基本类型的Hibernate映射类型Java类型Hibernate映射类型标准SQL类型大小和取值范围int/Integerint/integerINTEGER4Bytelong/Long longBIGINT8Byteshort/ShortshortSAMLLINT2Bytebyte/BytebyteTINYINT1Bytefloat/FloatfloatFLOAT4Bytedouble/DoubledoubleDOUBLE8ByteBigDecimalbig_decimalNUMBERICNumeric(8,2)char/Character/StringcharacterCHAR(1)定长字符StringstringVARCHAR变长字符boolean/BooleanbooleanBIT布尔类型boolean/Booleanyes/noCHAR(1)(Y/N)布尔类型boolean/Booleantrue/falseCHAR(1)(T/F)布尔类型2). Java时间和日期类型的Hibernate映射类型Java类型Hibernate映射类型标准SQL类型描述java.util.Date/java.sql.DatedateDATE日期,yyyy-mm-ddjava.util.Date/java.sql.TImetimeTIME时间,hh:mm:ssjava.util.Date/java.sql.TimestamptimestampTIMESTAMP时间戳,yyyymmddhhmmssjava.util.CalendarcalendarTIMESTAMP同上java.util.Calendarcalendar_dateDATE日期,yyyy-mm-dd* 当程序类型为java.sql.Timestamp, 数据库中表属性类型为timestamp的情况下,即使用户以空值插入数据,数据库系统仍然会自动填充timestamp的值3). Java 大对象类型的Hibernate映射类型Java类型Hibernate映射类型标准SQL类型MySql类型Oracle类型byte[]binaryVARBINARY/BLOBBLOBBLOBStringtextCLOBTEXTCLOBserializable实现serializable接口的一个java类VARBINARY/BLOBBLOBBLOBjava.sql.ClobclobCLOBTEXTCLOBjava.sql.BlobblobBLOBBLOBBLOB* 在应用程序中通过Hibernate来保存java.sql.Clob或者java.sql.Blob实例时,必须包含两个步骤:a. 在一个数据库事务中先保存一个空的Blob或Clob实例;b. 接着锁定这条记录,更新在步骤(1)中保存的Blob或Clob实例,把二进制数据或长文本数据写到Blob或Clob实例中。12Session session = sessionFactory.openSession();3Transaction tx = session.beginTransaction();4Customer customer = new Customer();5customer.setDescription(Hibernate.createClob()); //先保存一个空的clob6session.save(customer);7session.flush();8//锁定这条记录9session.refresh(customer,LockMode.UPGRADE);10oracle.sql.CLOB clob = (oracle.sql.CLOB) customer.getDescription();11java.io.Writer pw = clob.getCharacterOutStream();12pw.write(longText);//longText是一个长度超过255的字符串13pw.close();14mit();15session.close();* 一个java类型对应多个Hibernate映射类型的场合。例如,如果持久化类的属性为java.util.Date类型,对应的Hibernate映射类型可以是date,time或timestamp。此时必须根据对应的数据库表的字段的SQL类型,来确定Hibernate映射类型。如果字
文档评论(0)