再讲*.hbm.xml中的类型映射

来源:互联网 发布:网络歌手 金达莱花 编辑:程序博客网 时间:2024/06/06 18:21

  前边我们讲过了hbm.xml文件中的各个节点的具体的属性和用法,今天我们来讲一讲hbm.xml文件中一些特殊类型的映射规则。

  1.时间类型的映射规则

  在Java中表示时间和日期的类有java.util.Date和java.util.Calender。

  而JDBC的API中又提供了java.util.Date的三个子类:java.sql.Date  java.sql.Time  java.sql.Timestamp,这三个子类分别可以对应SQL数据库中的Date,Time,Timestamp这三种类型,所以我们在声明Java类的属性时只需要声明为java.util.Date就可以了。然后我们在hbm.xml文件中分别使用type=date,time,timestamp来进行和数据库中Date,Time,Timestamp的映射。

  2.Java大对象类型的Hibernate的映射规则

  ① Java中当使用java.lang.String或者java.sql.Clob表示的数据类型的属性时(内存超过255byte),我们在hbm.xml文件中使用text,clob分别映射数据库中的clob(oracle),text(mysql)类型的数据。

  ② 当Java中使用byte[]或者java.sql.Blob时,我们使在hbm.xml文件中使用binary,blob分别映射数据库中blob类型的数据。

  需要注意的是:

  实际上在处理长度超过255的字符串时,Java中使用java.lang.String比较实用。

  我们还可以在hbm.xml文件中精确指定SQL数据库与之对应的类型:<column name="" sql-type="mediublob">,因为在数据库中同一种类型还有具体的小的类型与之对应。

  我们在实际的应用开发中,并不会将一个文件(如图片或者TXT文档)通过Java的大对象存放到数据库中,因为这样很消耗数据库的内存,我们是通过在数据库中添加一个字段指向我们放在工程下的图片,除非这个文件很重要,我们才将他放在数据库中而不是放在工程之下

原创粉丝点击