主键的生成策略:

Oracle: assigned identity native assigned sequence

SQL: assigned sequence

类型说明:

assigned: 主键由外部程序负责生成,无需Hibernate参与。

hilo: 通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。高低算法

increment: 主键按数值顺序递增

identity:采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL中的主键生成机制

sequence:  采用数据库提供的sequence 机制生成主键。如Oralce 中的Sequence

native:由Hibernate根据底层数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式

uuid.hex: 由Hibernate基于128 位唯一值产生算法生成16 进制数值(编码后以长度32 的字符串表示)作为主键

uuid.string:与uuid.hex 类似,只是生成的主键未进行编码(长度16)。在某些数据库中可能出现问题(如PostgreSQL)

foreign: 使用外部表的字段作为主键。一般而言,利用uuid.hex方式生成主键将提供最好的性能和数据库平台适应性

举例说明“::

不存在的字段表自动创建:

hibernate 使用和查询

hibernate 使用和查询


hbm2ddl:

update:只会影响数据的字段

create:如果不存在,会删除相关表结构,再新建,效率低!!!

hibernate 使用和查询

hibernate 使用和查询

hibernate 使用和查询

hibernate查询:

1.Session接口中的方法介绍:

beginTransaction() :  事务

void delete(Object object): 删除与该对象关联的数据里内的一条记录

Serializable save(Object object): 将一个实体实例持久化,返回该持久化实例的id。在持久化之前必须手动或自动的指派id。

void update(Object object): 通过给定的分离状态的实例的id更新数据库记录

saveOrUpdate():兼具了save()和update()方法的功能,该方法根据传入参数的状态执行不同的操作,
当为临时状态时,调用save()方法;
当为持久化状态时,则直接返回;
当为游离状态时,调用update()方法

merge():

主要用于更新和保存实体,
当实体不存在是,则执行保存操作,
当实体已经存在时,执行更新操作,
其实同saveOrUpdate()的功能是类似的。 

clear():清除缓存

evict(Object object) :清除某个缓存,有点类似:session.removeAttribute(o);

close():关闭会话

 flush():可以强制进行从内存到数据库的同步


2.VO,PO 介绍

Hibernate的对象有3种状态:

瞬时态(Transient) :

瞬时对象和脱管对象也称为VO(Value Object)。

hibernate 使用和查询

持久态(Persistent)

处于持久态的对象也称为PO(Persistence Object)  持久对象具有如下特点

和session实例关联

在数据库中有与之关联的记录

hibernate 使用和查询

脱管态(Detached)

hibernate 使用和查询


如图:

hibernate 使用和查询


3.get和load方法的区别:

作用根据主键查询数据

get  查询数据不存在返回null,没有采用延迟加载

load  查询数据不存在报错误,采用延迟加载【懒加载】

查询返回的是代理对象,如果查询的代理对象没有使用,不会进行真正的查询

hibernate 使用和查询

4.HQL查询

HQL(Hibernate Query Language)针对hibernate的查询语言

HQL和SQL的比较

HQL:完全面向对象,对象名 属性,类名,属性名 是区分大小的

SQL:面向关系型数据库,表名 字段名

hibernate 使用和查询

具体查询操作:

1.多行一列,输出用Object接收

hibernate 使用和查询

2.多行多列:输出用object[]

hibernate 使用和查询

3.多行所有列:用对象接受,不能用*

hibernate 使用和查询


4.查询统计数据:uniqueResult()  =》返回结果是long,count(1) 不被支持

hibernate 使用和查询

5.带条件查询

1.占位符

hibernate 使用和查询

2.命名参数

hibernate 使用和查询

3.Map

hibernate 使用和查询

4.对象

hibernate 使用和查询

6.分页查询

hibernate 使用和查询

7.批量修改

hibernate 使用和查询

8.批量删除

hibernate 使用和查询

5.容器查询:

hibernate 使用和查询

6.原生本地SQL查询

1.多行一列

hibernate 使用和查询

2.多行多列

hibernate 使用和查询

3.多行所有列

hibernate 使用和查询

hibernate 使用和查询

4.查询统计数据。列别名,及指定返回类型

hibernate 使用和查询

hibernate 使用和查询

5.其他的




相关文章:

  • 2022-01-01
  • 2022-02-07
  • 2021-05-26
  • 2022-01-01
  • 2022-01-01
  • 2021-04-20
猜你喜欢
  • 2021-09-25
  • 2021-08-27
  • 2021-10-06
  • 2021-08-05
  • 2022-12-23
  • 2022-12-23
  • 2021-11-06
相关资源
相似解决方案