Hibernate单表操作实例解析

 更新时间:2018年02月09日 10:50:41   作者:Marksinoberg  
这篇文章主要介绍了Hibernate单表操作实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

单一主键

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

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

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

基本类型

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

其中最容易出错的数据类型是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支持的对象类型的总结:

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

需要注意的是MySQL不支持标准的CLOB类型,在MySQL中用TEXT,MEDIUMTEXT及LONGTEXT类型来表示长度超过255的长文本数据。

组件属性

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

如:

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

相关文章

  • IDEA教程创建SpringBoot前后端分离项目示例图解

    IDEA教程创建SpringBoot前后端分离项目示例图解

    在使用spring、mybatis等框架时,配置文件很复杂,有时复杂的让人想放弃Java,使用C#。springboot出现这一切问题就都不是问题
    2021-10-10
  • Java中的LinkedHashMap及LRU缓存机制详解

    Java中的LinkedHashMap及LRU缓存机制详解

    这篇文章主要介绍了Java中的LinkedHashMap及LRU缓存机制详解,LinkedHashMap继承自HashMap,它的多种操作都是建立在HashMap操作的基础上的,同HashMap不同的是,LinkedHashMap维护了一个Entry的双向链表,保证了插入的Entry中的顺序,需要的朋友可以参考下
    2023-09-09
  • SpringMVC 参数绑定之视图传参到控制器的实现代码

    SpringMVC 参数绑定之视图传参到控制器的实现代码

    这篇文章主要介绍了SpringMVC 参数绑定之视图传参到控制器的相关知识,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • SpringBoot Starter自定义之创建可复用的自动配置模块方式

    SpringBoot Starter自定义之创建可复用的自动配置模块方式

    本文将详细介绍如何设计和实现一个自定义的Spring Boot Starter,帮助读者掌握这一强大技术,提升代码复用性和开发效率,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 里氏代换原则_动力节点Java学院整理

    里氏代换原则_动力节点Java学院整理

    这篇文章主要为大家详细介绍了里氏代换原则的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • SpringBoot解决yml明文密码问题的方法

    SpringBoot解决yml明文密码问题的方法

    在现代的软件开发中,安全性是一个重要的考量因素,对于使用SpringBoot框架开发的应用程序而言,敏感信息如数据库密码、API密钥等通常存储在YAML配置文件中,而这些文件往往是明文存储,存在安全隐患,所以本文介绍了SpringBoot解决yml明文密码问题的方法
    2024-07-07
  • SpringBoot集成IJPay实现微信v3支付的示例代码

    SpringBoot集成IJPay实现微信v3支付的示例代码

    本文主要介绍了SpringBoot集成IJPay实现微信v3支付的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Windows系统下JDK1.8与JDK11版本切换超详细教程

    Windows系统下JDK1.8与JDK11版本切换超详细教程

    这篇文章主要给大家介绍了关于Windows系统下JDK1.8与JDK11版本切换的超详细教程,我们可以有多个工程项目,用的JDK版本不一样,这个时候就需要进行自由切换JDK版本了,需要的朋友可以参考下
    2023-07-07
  • java 中Map详解及实例代码

    java 中Map详解及实例代码

    这篇文章主要介绍了java 中Map详解及实例代码的相关资料,需要的朋友可以参考下
    2017-04-04
  • java设计模式:建造者模式之生产线

    java设计模式:建造者模式之生产线

    这篇文章主要介绍了Java设计模式之建造者模式,结合具体实例形式分析了建造者模式的概念、原理、实现方法与相关使用注意事项,需要的朋友可以参考下
    2021-08-08

最新评论