hibernate.cfg.xml 中hbm2ddl.auto属性配置说明
简单说一下hibernate中hbm2ddl.auto参数的配置。先放一张图来了解,hibernate的工作流程。
hibernate工作流程主要为以下步骤。
1、Configuration接口:负责配置并启动Hibernate
2、SessionFactory接口:负责初始化Hibernate
3、Session接口:负责持久化对象的CRUD操作
4、Transaction接口:负责事务
5、Query接口和Criteria接口:负责执行各种数据库查询
注意:Configuration实例是一个启动期间的对象,一旦SessionFactory创建完成它就被丢弃了
hbm2ddl.auto 几个常用参数为create、update、validate。
create: 加载hibernate配置文件时,先删除数据库中已经存在的表,然后在根据映射文件新建表结构。(数据会丢失)
update:根据映射文件,更新数据库表结构,但是并不会删除数据库中已经存在的字段(即使映射文件中没有该字段,也不会删除)
validate:验证映射文件,和数据库中的表表结构是否对应(其中,数据库表中可以包含映射文件中没有的字段),如果映射文件上的某个字段不存在与数据库表中,报异常。
其中update 使用较多。
如果你的数据一直丢失,请查看是否hibernate.cfg.xml配置文件中hbm2ddl.auto 参数设置为 create。