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单表操作的更多相关文章
- (三)hibernate单表操作
0. 贴上节hbm文件 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hib ...
- hibernate课程 初探单表映射3-1 hibernate单表操作简介
本章简介: 1 单一主键 2 基本类型 3 对象类型 4 组件属性 5 单表操作CRUD实例
- Hibernate单表操作(一)——单一主键
assigned由java应用程序负责生成.(手工赋值) native由底层数据库自己主动生成标识符,假设是MySQL就是increment,假设是oracle就是sequence.等等.
- hibernate学习笔记(6)组件属性以及单表操作
组件属性:实体类中的某个属性属于用户自定义类的对象: 作用:将两个实体类合并在一起组建成一个表 在hbm.xml文件中配置: 格式: <component name="取的名字&quo ...
- Hibernate学习笔记(一)-->数据库单表操作
Hibernate框架是一个全ORM映射框架,是一个非常流行的数据库操作框架之一,现在比较流行的还有MyBatis半ORM映射框架 在MyEclipse IDE开发工具中,可以很轻松的搭建Hibern ...
- 09-hibernate单表操作(1)
1,单一主键 2,基本类型 3,对象类型 4,组件属性 5,单表操作 单一主键 常用生成策略: assigned 有程序员生成(手工) native 由数据库底层,如果是mysql是increment ...
- 学习MySQL之单表操作(二)
##单表操作 ##创建表 CREATE TABLE t_employee( empno ), ename ), job ), MGR ), Hiredate DATE DEFAULT '0000-00 ...
- c# 数据库编程(利用DataSet 和 DataAdaper对象操作数据库--单表操作)
一.概述 前面2篇文章,介绍了使用SqlCommand对象利用sql命令来操作数据库. 这篇文章我们来介绍使用c#的DataSet 和 DataAdaper对象操作操作数据库. 先来介绍下这两个对象是 ...
- Django学习笔记(7)——单表操作和多表操作
单表操作 1,创建模型 创建名为book的APP,在book下的models.py中创建模型: from django.db import models # Create your models he ...
随机推荐
- 51nod 1179 最大的最大公约数
1179 最大的最大公约数 题目来源: SGU 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 给出N个正整数,找出N个数两两之间最大公约数的最大值.例如:N = ...
- Codeforces Round #398 (div.2)简要题解
这场cf时间特别好,周六下午,于是就打了打(谁叫我永远1800上不去div1) 比以前div2的题目更均衡了,没有太简单和太难的...好像B题难度高了很多,然后卡了很多人. 然后我最后做了四题,E题感 ...
- inline使用
二八法则: 1.将inline限定在最小的,最频繁调用的函数上面.这会使你的调试,二进制升级变得容易,并能将潜在的代码膨胀问题最小化,提高程序运行速度可能性最大化. 2.不要仅仅因为函数模板出现在头文 ...
- jquery easyui combobox 高度自适应
data-options="required:true,editable:false,panelHeight:'auto'" 加上panelHeight:'auto'即可 列合并 ...
- Java获取随机数的3种方法
最小值---最大值(整数)的随机数 方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1)) 例: (int)(1+Math.random()*(10-1+1)) / ...
- mysql 索引列为Null的走不走索引及null在统计时的问题
要尽可能地把字段定义为 NOT NULL,即使应用程序无须保存 NULL(没有值),也有许多表包含了可空列(Nullable Column)这仅仅是因为它为默认选项.除非真的要保存 NULL,否则就把 ...
- python笔记二(数据类型和变量、编码方式、字符串的编码、字符串的格式化)
一.数据类型 python可以直接处理的数据类型有:整数.浮点数.字符串.布尔值.空值. 整数 浮点数 字符串:双引号内嵌套单引号,可以输出 i'm ok. 也可以用\来实现,\n 换行 \t tab ...
- Go 语言接口
Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口. 实例 /* 定义接口 */ type interface_name in ...
- Canvas实现3D效果-可旋转的立方体
摘要:Canvas画布是一个二维平面,如何展示出3D效果?通过将三维空间中的Z轴抽取出来,将图像的点投影到与Z轴垂直的平面上,在通过旋转等变换效果,我们就能实现3D效果. 一.建立坐标系 1)立方体坐 ...
- 实验与作业(Python)-03 Python程序实例解析
截止日期: 要求: 下周实验课前上交,做好后在实验课上检查可获取平时分. 做出进阶或选做的的请用清晰的标致标识出来,方便老师批改 本次作业:可提交也可不提交.作业算平时成绩. 本次作业内容量较大,请组 ...