Hibernate单表操作实例解析

2025-05-29 0 23

单一主键

assigned:由java应用程序负责生成(即手工的赋值)

native:由底层的数据库自动的生成标示符,如果是mysql就是auto_increment,如果是oracle就是sequence,等等

操作的时候还是需要结合hibernate.cfg.xml文件的,因为数据库中的hbm2ddl.auto属性如果是update的时候,设置为主键自增是可以的;但是如果是create的时候,第二次如果不手工的改变,恐怕就要出bug了。

基本类型

一般来说,按照java的数据类型进行操作就可以。

Hibernate单表操作实例解析

其中最容易出错的数据类型是date 和 timestamp两种。

– date类型既可以映射成java.util.date,也可以映射成java.sql.date类型。代表日期:yyyy-mm-dd
– time类型映射成java.util.time 和java.sql.time代表的时间:hh:mm:ss
– timesaamp可以映射成java.util.date或者java.sql.timestamp类型,代表的时间和日期:yyyymmddhhmmss

如何更改其阿紫数据库中的数据库类型呢?

在xx.hbm.xml文件中对class对象的property的type属性进行更改即可。改成hibernate自带的数据类型就可以了。

对象类型

下面是hibernate支持的对象类型的总结:

Hibernate单表操作实例解析

操作的时候只需要按照相应的api即可。

需要注意的是mysql不支持标准的clob类型,在mysql中用text,mediumtext及longtext类型来表示长度超过255的长文本数据。

组件属性

实体类中某个属性属于用户自定义的类的对象

如:

?

1

2

3

4

5
<component name="address" class="address">

<property name="postcode" column="postcode" />

<property name="phone" column="phone" />

<property name="address" column="address" />

</component>

也就是说一旦是用户自定义的类型的话,在xx.hbm.xml文件中就要使用component标签,而不是单纯的property标签了。这一点应该有其的注意。

单表操作crud的实例

这里主要是使用到了session的几个常用的api。如save,update,delete,和get/load等等。

– save:直接调用session.save(对象的实例)
– get/load:session.get/load(xx.class,标示符);其中这个标示符可以是主键对应的值
– update:session.update(对象的实例)
– delete:session.delete(对象的实例)

get与load的区别:

– 一、不考虑缓存的情况下,get方法在调用之后立即的向数据库发送sql语句,返回持久化的对象,而load方法会在调用后返回一个代理的对象,该代理对象只保存了实体对象的id,知道适用对象的非主键属性时才会发出sql语句。

– 二、查询数据库中不存在的数据时,get方法返回的是null,load方法则会抛出异常org.hibernate.objectnotfoundexception

总结

以上就是本文关于hibernate单表操作实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

原文链接:http://blog.csdn.net/marksinoberg/article/details/51459391

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Hibernate单表操作实例解析 https://www.kuaiidc.com/112711.html

相关文章

发表评论
暂无评论