天天看点

hibernate框架入门increment

1.配置文件xml

hibernate框架入门increment

一个实体类对应一个表,实体类的属性对应表的字段。

2.核心配置文件

hibernate框架入门increment

知道连哪个数据库

url:数据库名字。这里是省略了localhost:3306,因为是连接本地。

URL没有省略的写法

hibernate框架入门increment

规定方言用于:有Oracle ,mysql ,有语句和生成不一样。

hibernate框架入门increment
hibernate框架入门increment
hibernate框架入门increment

更新表结构PS:就是会可能增加数据库表没有过的字段 。

**

3.用到的工具类

**

hibernate框架入门increment
hibernate框架入门increment
hibernate框架入门increment
hibernate框架入门increment
hibernate框架入门increment

update

hibernate框架入门increment

“1l” PS:指的是id号和long类型

transaction 是业务处理。

注释部分的做法会导致表中的数据的其他没有设置的属性会变成null,所以不推荐用这种方法。

推荐用先查询再修改的做法。

hibernate框架入门increment

第二种是级联删除,可以把一对多的对应的表也删除掉。

Save or Update

hibernate框架入门increment

设定了id就是修改,如果id不存在就会报错。

没有设定id就是保存。

hibernate框架入门increment

from Customer PS:是类名

increment

hibernate框架入门increment

//两个测试类做实验

细节:数据库的表结构自增长会因为increment而取消掉

多线程报错,所以increment的只能对单线程使用,

因为increment里面自带的自增长出现冲突

hibernate框架入门increment

identity 可以使用数据库的自动增长机制

hibernate框架入门increment

必须手动配置id’

hibernate框架入门increment
hibernate框架入门increment

native

native由hibernate根据使用的数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式,灵活性很强。如果能支持identity则使用identity,如果支持sequence则使用sequence。

session的一级缓存

//快照区

hibernate框架入门increment

一级缓存原理图

hibernate框架入门increment

比较快照区和缓存区是否一致,不一致就修改数据库,一致就不修改。

事务

hibernate框架入门increment

事务处理加在service层。保证同一个session才能保证事务是同一个。

绑定同一个线程用到的 getcurrentsession()方法,使用这个方法必须先配置文件。

hibernate框架入门increment

不能关闭session,会报错

hibernate框架入门increment

HibernateAPI

hibernate框架入门increment

cust_name是属性名不是字段名这里表述的是类里面的东西

设置参数(0,)指的是第一个参数,从零开始。

hibernate框架入门increment

设置分页查询

hibernate框架入门increment

//firstresult 设置从第三个结果为结束,进行到下一页。

Criteria 条件查询QBC查询

hibernate框架入门increment

通过add方法设置条件。

继续阅读