只要在hibernate.cfg.xml添加这句话,就可以自动生成数据表
update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表;如果表里缺少列,则自动添加列。
还有其他的参数:
create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失。
create-drop:启动hibernate时,自动创建表,程序关闭时,自动把相应的表都删除。所以程序结束时,表和数据也不会再存在。
复制内容到剪贴板 程序代码
<property name="hibernate.hbm2ddl.auto">update</property>
update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表;如果表里缺少列,则自动添加列。
还有其他的参数:
create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失。
create-drop:启动hibernate时,自动创建表,程序关闭时,自动把相应的表都删除。所以程序结束时,表和数据也不会再存在。
在37.4节给出的XML映射文件设置口诀:“以实体类的字段为依据来配置XML映射文件:类的字段有则映射有、类的字段无则映射无”,这实际上是“实体类↔XML映射↔数据库表”这3者之间对应关系的一个反映。通过本节的学习,读者会发现,这3者之间是可以互相用工具来转化的。
37.8.1 由XML映射文件生成数据库表(V009)
Hibernate可以由XML映射文件自动生成数据库表,这简化了创建表格的工作。具体实现方法如下:
(1)将以下两种方法添加到HibernateUtil类中。
// 创建数据库表。如果表存在将会被删除重建,同时sql语句输出到c:\sms.sql
public static void createDbTable() throws HibernateException {
Configuration conf = new Configuration().configure();
SchemaExport dbExport = new SchemaExport(conf);
dbExport.setOutputFile("c:\\sms.sql");
dbExport.create(true, true);
}
Tags: 建表