在Hibernate中,数据库的自动迁移可以通过SchemaExport工具实现。主要有以下两种方式:
1、 在hibernate.cfg.xml中配置SchemaExport:
- 这需要在配置文件中添加SchemaExport的配置,Hibernate会根据实体映射自动生成数据库表结构。
例如:
<mapping resource="com/demo/model/Account.hbm.xml"/>
<session-factory>
...
<property name="hibernate.hbm2ddl.auto">create</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
</session-factory>
- hibernate.hbm2ddl.auto属性指定自动建表策略,这里设置为create,会先drop表再create。
2、 通过Configuration对象配置SchemaExport: - 这需要通过Configuration对象设置SchemaExport相关属性,然后调用SchemaExport的create()或 dropAndCreate()方法实现自动建表。
例如:
Configuration config = new Configuration();
config.addResource("com/demo/model/Account.hbm.xml");
config.setProperty("hibernate.hbm2ddl.auto", "create");
config.setProperty("hibernate.show_sql", "true");
config.setProperty("hibernate.format_sql", "true");
new SchemaExport(config).create(true, true); // 自动创建表结构
SchemaExport会根据配置的映射文件解析实体与表的映射关系,然后自动执行建表或修改表结构的SQL,实现数据库迁移和更新。