
hibernate配置
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的持久化类

说明:持久化类中必须有一个默认的构造器
3、创建映射文件
文件名必须和类名一致,与类放一起Person.hbm.xml

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

说明:
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不能检测到。