orm自动建表

本文介绍了在Java项目中利用Hibernate进行数据库迁移时如何配置自动建表。通过修改hibernate.cfg.xml配置文件,设置'hbm2dll.auto'属性为'update',Hibernate可以在启动时检查并创建或更新数据库表。同时,需要为每个Pojo类创建对应的hbm.xml映射文件,并在启动类中调用SchemaExport来执行建表操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



1、对与java项目,做数据库迁移时,都会用的数据脚本。

2、当引入hibernate时,可以创建数据库表的配置文件。可以根据表的配置文件自动在数据库建表。(数据库要预先建立好,因为hibernate只会建表,不会建库)

步骤:

1)、在配置文件 hibernate.cfg.cml 中加入参数 ,配置相关数据源参数和pojo文件

    1.         <property name="hbm2dll.auto">update</property>
  1.         <hibernate-configuration><session-factory>  
  2.          <property name="connection.driver_class">com.mysql.jdbc.Driver</property>  
  3.         <property name="connection.url">jdbc:mysql://localhost:3306/test</property>  

    4.      <property name="connection.username">root</property>  

    5.      <property name="connection.password">mysecretpassword</property>  

    6.      <property name="dialect">org.hibernate.dialect.MySQLDialect</property>  

    7.      

    8.     property name="hbm2dll.auto">update</property>  

    9.      <property name="javax.persistence.validation.mode">none</property>  

    10.    <property name="show_sql">true</property>  

    11.      

    12.    <mapping resource="com/bean/User.hbm.xml"/>  

    13.   <mapping resource="com/bean/Journal.hbm.xml"/>      

    14.    <mapping resource="com/bean/Article.hbm.xml"/>  

    15.    <mapping resource="com/bean/Chapter.hbm.xml"/>  

    16.    <mapping resource="com/bean/Paragraph.hbm.xml"/>  

    17.</session-factory></hibernate-configuration>  



  


   

#update 表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表;如果表里缺少列,则自动添加列。

#create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失。

#create-drop:启动hibernate时,自动创建表,程序关闭时,自动把相应的表都删除。所以程序结束时,表和数据也不会再存在。 

2)配置pojoname.hbm.xml配置文件,添加hibernate-mapping.

  1. <hibernate-mapping>  

  2.     <class name="com.bean.Article" table="article" catalog="test">  
  3.         <id name="article_id" type="java.lang.Integer">  
  4.             <column name="article_id"></column>  
  5.             <generator class="identity"></generator>  
  6.         </id>  
  7.         <property name="outline" type="java.lang.String">  
  8.             <column name="outline" length="20" not-null="false"></column>  
  9.         </property>  
  10.         <property name="title" type="java.lang.String">  
  11.             <column name="title" length="20" not-null="false"></column>  
  12.         </property>  
  13.         <many-to-one name="journal" class="com.bean.Journal"   
  14.         column="journal_id" not-null="true" cascade="all"></many-to-one>  
  15.         <set name="chapters" inverse="true" cascade="all">  
  16.             <key column="article_id"></key>  
  17.             <one-to-many class="com.bean.Chapter"></one-to-many>  
  18.         </set>  
  19.     </class>  
  20. </hibernate-mapping>  

3、建立一个启动类

  1. public class InportDatabase {  

  2.   
  3.     public static void main(String[] args) {  
  4.         Configuration cfg = new Configuration().configure();  
  5.         SchemaExport export = new SchemaExport(cfg);  
  6.         export.create(truetrue);  
  7.      }  
  8. }  


即可根据配置文件在数据库中建立相应的表。

   



      

 




 

 

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值