hibernate配置

hibernate配置



1、配置文件:

笔记插图(第 1 页)

Hibernate.connection.url 表示要链接的数据库地址

Hibernate.connection.driver_class 表示要链接的数据库的驱动类

Hibernate.connection.username 要连接的数据库的用户名

Hibernate.connection.password 要连接的数据库的密码

Hibernate.dialect 表示要使用的数据库的类型

org.hibernate.dialect.MySQL5Dialect mysql数据库

org.hibernate.dialect.Oracle9Dialect oracle数据库

org.hibernate.dialect.SQLServerDialect SQLServer数据库

hibernate.hbm2ddl.auto

validate:加载hibernate时验证创建表结构

update:加载hibernate时自动更新数据库结构,如果表存在不用创建,如果不存在就创建。

create:每一次加载hibernate时都创建表结构

create-drop:加载hibernate时创建,退出时删除

2、创建hibernate的持久化类

笔记插图(第 1 页)

说明:持久化类中必须有一个默认的构造器

3、创建映射文件

文件名必须和类名一致,与类放一起Person.hbm.xml

笔记插图(第 2 页)

说明:

从图中可以看出,该映射文件完成了从类到表、类中的属性到表中的字段的对应关系。

4、Hibernate的流程

笔记插图(第 2 页)

说明:

1、 crud操作是由session来完成的

2、 在hibernate中事务不是自动提交的

5、session 常用方法总结

1、save,persist保存数据,persist在事务外不会产生insert语句

2、delete删除

3、update 更新,如果数据中没有记录,会出现异常

4、get根据id会立刻访问数据

5、load根据id查找(返回是代理,不会立即返回数据库)

6、saveOrupdate,merge(根据id和version的值来确定是save还是update)

7、lock(把对象变成持久,但不会同步状态)

6、对象状态

1、瞬时(transient):数据库中没有数据与之对应,超过应用作用域会被jvm垃圾回收器回收,一般是new出来且

与session没有关联的对象

2、持久(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务

没有提交;持久状态发生改变,在事务提价时会影响到数据库(hibernate能检测到)

3、托管(detached):数据库中有数据与之对应,但当前没有session与之关联;托管对象状态发生改变,

hibernate不能检测到。