hbm2ddl是hibernate带的一个工具类,可以传5个参数进去:
none 默认的参数,即不适用hbm2ddl管理表结构
validate 加载hibernate时,验证创建数据库表结构
create 每次加载hibernate,重新创建数据库表结构
这个要注意,重新创建表结构意味着将原先的数据表删除,然后重新创建表,所以里面的数据会全部丢失
create-drop 加载hibernate时创建,退出是删除表结构
update 加载hibernate自动更新数据库结构,这个是你要解释的意思,就是当hibernate启动的时候,例如重启tomcat或者使用hbm2ddl工具类的时候就会根据你的hibernate配置文件对数据表进行更新,例如你在模型中增加了一个属性,然后对应的配置文件也做好映射,这是重启服务,hibernate就会动态的将数据库中对应的表加上这个字段,而不需要自己动手去写语句来修改数据表的结构。
hibernate.hbm2ddl.auto这项配置通常用于项目的其实阶段,由于不需求稳定,所以最好动态的创建和修改数据表。当数据结构被证实稳定,数据库设计成熟之后。就可以去掉此参数。
Batch Size是设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小,有点相当于设置Buffer缓冲区大小的意思。
Batch Size越大,批量操作的向数据库发送sql的次数越少,速度就越快。我做的一个测试结果是当Batch Size=0的时候,使用Hibernate对Oracle数据库删除1万条记录需要25秒,Batch Size = 50的时候,删除仅仅需要5秒!!!
这个参数的作用主要用于:自动创建|更新|验证数据库表结构。如果不是此方面的需求建议set value="none".
其它几个参数的意思,我解释一下:
validate 加载hibernate时,验证创建数据库表结构
create 每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
create-drop 加载 hibernate时创建,退出是删除表结构
update 加载hibernate自动更新数据库结构
总结:
1.请慎重使用此参数,没必要就不要随便用。
2.如果发现数据库表丢失,请检查hibernate.hbm2ddl.auto的配置 可设置
3.此设置适合ejb配置文件修改
==============================================================
hibernate.jdbc.batch_size:
非零值,允许Hibernate使用JDBC2的批量更新. 取值 建议取5到30之间的值。设定一次最多可以提交多少sql语句的上限,提高sql语句的执行效率 。
这貌似hibernate