Hibernate.cfg.xml常用配置总结
测试时候Hibernate有如下常用甚至更多的配置,总结如下:
(1)Hibernate.show_sql:是否在运行时候sql语句输出到控制台,编码阶段便于测试的。(默认设置为true)
(2)Hibernate.format_sql:输出在控制台sql语句是否进行排版,便于阅读。(默认设置为true)
(3)Hbm2ddl.auto:可帮助由java代码生成数据库脚本,进而生成具体表结构。如:create/update/create-drop/validate。
Create:表示每次创建新的表格,原来的表删除,同时数据全部清楚重新插入数据。(每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。)
Update:表示在原有的表上更新,保存原来的数据。(也就是原有数据不删除,依然存在,不需要重新插入,加载hibernate自动更新数据库结构)
Create-drop:加载hibernate时创建,退出是删除表结构
Validate:加载hibernate时,验证创建数据库表结构,如果是不同的话则不创建表。
(4)Hibernate.default_schema:默认数据库,如果设置了,则创建表的时候,所有表有前缀。
(5)Hibernate.dialect:配置hibernate方言,可针对特定的数据库优化。
(6)
1.请慎重使用此参数,没必要就不要随便用。
2.如果发现数据库表丢失,请检查hibernate.hbm2ddl.auto的配置
3.以上4个属性对同一配置文件下所用有的映射表都起作用
例子如下:
(一)Hibernate.format_sql:输出在控制台sql语句是否进行排版,便于阅读。(默认设置为true)
(二)Hbm2ddl.auto:可帮助由java代码生成数据库脚本,进而生成具体表结构的:create:先删除,再次创建表,再插入信息。(信息丢失)
(二)Hbm2ddl.auto:可帮助由java代码生成数据库脚本,进而生成具体表结构的:update属性。表示在原有的表上更新,保存原来的数据。(也就是原有数据不删除,依然存在,不需要重新插入,加载hibernate自动更新数据库结构)
(三)Hibernate.default_schema:默认数据库,如果设置了,则创建表的时候,所有表有前缀。
显示表名字有生成前缀:
显示表名字有生成前缀: