单一主键

  • 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

最新文章

  1. Struts框架的核心业务
  2. Code First 关系配置整理
  3. win7(64位)php5.5-Apache2.4-mysql5.6环境安装
  4. 解决SSH会话连接超时问题
  5. 图的最短路算法 Dijkstra及其优化
  6. java基础知识回顾之抽象类和接口的区别
  7. java线性表学习笔记(二)
  8. spring mvc使用的一些注意事项
  9. 理解sparse coding
  10. LwIP之socket应用--WebServer和Modbus TCP
  11. Windows-universal-samples-master示例 XamlCommanding
  12. 中文命名之Hibernate+MySQL演示
  13. 解决 win10 新建文件夹重命名卡死的另一种方法
  14. echarts和highcharts比较
  15. Ajax实战(原生)
  16. 排名前 16 的 Java 工具类
  17. Linux 局域网同步时间
  18. idea使用优化
  19. 通过socket实现http通讯代码理解
  20. flex常用快捷键

热门文章

  1. hdu 5505(GT and numbers)
  2. [bzoj4828][Ah/Hnoi2017]大佬
  3. 【SpringMVC】&lt;context:include-filter&gt;和&lt;context:exclude-filter&gt;使用时要注意的地方
  4. 【转】使用virtualenv在ubuntu上搭建python 3开发环境
  5. Codeforces Round #417 (Div. 2)-A. Sagheer and Crossroad
  6. python复杂网络库networkx:绘图draw
  7. 学习笔记:Zookeeper 应用案例(上下线动态感知)
  8. chrome官方完整安装包
  9. Git之(三)辅助命令
  10. Android-Chart