Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

时间:2021-05-30 06:22:06

Hibernate_day02

上节内容

今天内容

实体类编写规则

Hibernate主键生成策略

实体类操作

对实体类crud操作

添加操作

根据id查询

修改操作

删除操作

实体类对象状态(概念)

Hibernate的一级缓存

什么是缓存

Hibernate缓存

验证一级缓存存在

Hibernate一级缓存执行过程

Hibernate一级缓存特性

Hibernate事务操作

事务相关概念

Hibernate事务代码规范写法

Hibernate绑定session

Hibernate的api使用

Query对象

Criteria对象

SQLQuery对象

Hibernate_day02

上节内容

1 web内容回顾

2 hibernate概述

(1)orm思想

3 hibernate入门案例

4 hibernate的配置文件

5 hibernate的核心api

今天内容

1 实体类编写规则

2 hibernate主键生成策略

(1)native

(2)uuid

3 实体类操作

(1)crud操作

(2)实体类对象状态

4 hibernate的一级缓存

5 hibernate的事务操作

(1)事务代码规范写法

6 hibernate其他的api(查询)

(1)Query

(2)Criteria

(3)SQLQuery

实体类编写规则

1 实体类里面属性私有的

2 私有属性使用公开的set和get方法操作

3 要求实体类有属性作为唯一值(一般使用id值)

4 实体类属性建议不使用基本数据类型,使用基本数据类型对应的包装类

(1)八个基本数据类型对应的包装类

- int – Integer

- char—Character

- 其他的都是首字母大写 比如 double – Double

(2)比如 表示学生的分数,假如 int score;

- 比如学生得了0分 ,int score = 0;

- 如果表示学生没有参加考试,int score = 0;不能准确表示学生是否参加考试

l 解决:使用包装类可以了, Integer score = 0,表示学生得了0分,

l 表示学生没有参加考试,Integer score = null;

Hibernate主键生成策略

1 hibernate要求实体类里面有一个属性作为唯一值,对应表主键,主键可以不同生成策略

2 hibernate主键生成策略有很多的值

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

3 在class属性里面有很多值

(1)native: 根据使用的数据库帮选择哪个值

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

(2)uuid:之前web阶段写代码生成uuid值,hibernate帮我们生成uuid值

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

4 演示生成策略值 uuid

(1)使用uuid生成策略,实体类id属性类型 必须 字符串类型

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

(2)配置部分写出uuid值

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

实体类操作

对实体类crud操作

添加操作

1 调用session里面的save方法实现

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

根据id查询

1 调用session里面的get方法实现

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

实体类中要重写toString()方法

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

修改操作

1 首先查询,修改值

(1)根据id查询,返回对象【如果不是查出来再修改,用update保存时其他字段值会变null】

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

删除操作

1 调用session里面delete方法实现

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

实体类对象状态(概念)

1 实体类状态有三种

(1)瞬时态:对象里面没有id值,对象与session没有关联

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

(2)持久态:对象里面有id值,对象与session关联

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

(3)托管态:对象有id值,对象与session没有关联

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

2 演示操作实体类对象的方法

(1)saveOrUpdate方法:实现添加、实现修改

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态