1. 程式人生 > >java中根據hibernate配置檔案自動建表

java中根據hibernate配置檔案自動建表

1、對與java專案,做資料庫遷移時,都會用的資料指令碼。

2、當引入hibernate時,可以建立資料庫表的配置檔案。可以根據表的配置檔案自動在資料庫建表。(資料庫要預先建立好,因為hibernate只會建表,不會建庫)

步驟:

1)、在配置檔案 hibernate.cfg.cml 中加入引數 ,配置相關資料來源引數和pojo檔案

<property name="hbm2dll.auto">update</property>
<hibernate-configuration><session-factory>
	<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
	<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
	<property name="connection.username">root</property>
	<property name="connection.password">mysecretpassword</property>
	<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
	
	<property name="hbm2dll.auto">update</property>
	<property name="javax.persistence.validation.mode">none</property>
	<property name="show_sql">true</property>
	
	<mapping resource="com/bean/User.hbm.xml"/>
	<mapping resource="com/bean/Journal.hbm.xml"/>	
	<mapping resource="com/bean/Article.hbm.xml"/>
	<mapping resource="com/bean/Chapter.hbm.xml"/>
	<mapping resource="com/bean/Paragraph.hbm.xml"/>
</session-factory></hibernate-configuration>

#update 表示自動根據model物件來更新表結構,啟動hibernate時會自動檢查資料庫,如果缺少表,則自動建表;如果表裡缺少列,則自動新增列。

#create:啟動hibernate時,自動刪除原來的表,新建所有的表,所以每次啟動後的以前資料都會丟失。

#create-drop:啟動hibernate時,自動建立表,程式關閉時,自動把相應的表都刪除。所以程式結束時,表和資料也不會再存在。 

2)、配置 pojoname.hbm.xml 配置檔案, 新增 hibernate-mapping

<hibernate-mapping>
	<class name="com.bean.Article" table="article" catalog="test">
		<id name="article_id" type="java.lang.Integer">
			<column name="article_id"></column>
			<generator class="identity"></generator>
		</id>
		<property name="outline" type="java.lang.String">
			<column name="outline" length="20" not-null="false"></column>
		</property>
		<property name="title" type="java.lang.String">
			<column name="title" length="20" not-null="false"></column>
		</property>
		<many-to-one name="journal" class="com.bean.Journal" 
		column="journal_id" not-null="true" cascade="all"></many-to-one>
		<set name="chapters" inverse="true" cascade="all">
			<key column="article_id"></key>
			<one-to-many class="com.bean.Chapter"></one-to-many>
		</set>
	</class>
</hibernate-mapping>

3、建立一個啟動類
public class InportDatabase {

    public static void main(String[] args) {
        Configuration cfg = new Configuration().configure();
        SchemaExport export = new SchemaExport(cfg);
        export.create(true, true);
     }
}
即可根據配置檔案在資料庫中建立相應的表。

相關推薦

java根據hibernate配置檔案自動

1、對與java專案,做資料庫遷移時,都會用的資料指令碼。 2、當引入hibernate時,可以建立資料庫表的配置檔案。可以根據表的配置檔案自動在資料庫建表。(資料庫要預先建立好,因為hibernate只會建表,不會建庫) 步驟: 1)、在配置檔案 hibernate.cf

Hibernate:根據配置檔案自動生成結構的2種方式

在hibernate中,我們可以利用框架的一些配置屬性和類來自動建立我們需要的表! 1)在配置檔案中加入 <property name="hbm2ddl.auto">true</p

Hibernate學習筆記(一)之——根據配置檔案自動建立的兩種方式(註解方式和配置檔案方式)

環境準備:jdk  eclipse   hibernate、mysql jar包 專案截圖: Student是根據配置檔案建立表,Teacher是根據註解建立表 Student.java package com.java1234.model; publi

hibernate 自動生成資料庫(根據hibernate配置檔案

以前給學校學生會寫了一個志願者管理系統,用的是SSH框架。後來要維護的時候,發現數據庫已經被我刪掉了,而且也沒有資料庫的建表語句。幸好在學習Hibernate時記得有一個方法可以恢復資料庫,前提是你要有hibernate的備置檔案。嘻嘻 …… 好吧 話不多說 先講一下怎麼

Javaspring讀取配置檔案的幾種方法

    在現實工作中,我們常常需要儲存一些系統配置資訊,大家一般都會選擇配置檔案來完成,本文根據筆者工作中用到的讀取配置檔案的方法小小總結一下,主要敘述的是spring讀取配置檔案的方法。     一、讀取xml配置檔案     (一)新建一個java bean

根據對映檔案自動

配置檔案中存放物件和表的對應關係,物件名對應著表名,物件的屬性對應著表的列 就是這樣的: <!-- name:類名 table:對應的表名,如果不寫,預設的表名就是類的簡單名稱

hibernate不能自動:MySQLSyntaxErrorException: Table '' doesn't exist

mysql mysql5 nat nta exist ble property cep exception 修改前: <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect<

hibernate通過pojo自動操作

1. 多對一 如球員和球隊的關係:多個球員在同一個球隊中。 1.1 類圖 TeamPojo:屬性 + set/get public class TeamPojo{ private Integer teamId; private String teamName; private String team

Hibernate不能自動

這是我第一天學習hibernate遇到的問題,糾結了一天終於解決了。 專案功能很簡單,就是儲存一條資料到資料庫。我完全照著尚矽谷佟剛老師的hibernate4.0的視訊寫的,結果執行一直出現找不到表的問題。 先看JUnit的Failure Trace報的錯 org.hibe

在spring配置hibernate.hbm2ddl.auto=true自動

今天 在spring中配置了 hibernate 的hibernate.hbm2ddl.auto 屬性為update ,配置資訊如下:     <property name="hibernateProperties"> <value> <!--

出現 Unable to instantiate default tuplizer,hibernate自動失敗,原因是在實體類聲明瞭成員變數describe,而describe是mysql關鍵字

歡迎使用Markdown編輯器寫部落格 本Markdown編輯器使用StackEdit修改而來,用它寫部落格,將會帶來全新的體驗哦: Markdown和擴充套件Markdown簡潔的語法 程式碼塊高亮 圖片連結和圖片上傳 LaTex數學公式 UML序列圖和

java——獲取不到配置檔案的全域性變數

*發現問題   前幾天在重構過程中移植之前的程式碼遇到了這樣的問題:獲取不到配置檔案中的全域性變數,也就是文章的標題,但是由於我還是小菜所以並沒有一開始就意識到bug的根本原因,下面我就簡單說說我是如何發現的。 1、直接啟動500 2、關鍵程式碼行打斷點   

為 eclipse 的 hibernate 配置檔案( hbm xml)加上自動提示功能

                為 eclipse 的 hibernate 配置檔案(*.hbm.xml)加上自動提示功能          在編輯 *.hbm.xml 檔案時,myeclipse 帶有自動提示功能,但 eclipse 是沒有自動提示功能的。需要自己手工加上:          1、開啟專案中

在工廠模式使用Properties配置檔案出現java.lang.ExceptionInInitializerError的問題

工廠模式的概念不提了 在使用Properties配置檔案時,使用FileInputStream載入配置檔案 public class DaoFactory { private ArchiveDao archiveDao; privat

MyEclipse配置Struts2配置檔案自動提示

        對於 xml 配置檔案,若當前主機連著網際網路,那麼,原則上在編寫 xml 配置檔案時,使用 ALT + /,可出現自動提示。但,有時由於網速等原因,或根本就沒有聯網,沒有自動提示。此

Idea找不到Java Application 的xml配置檔案問題研究

出現問題,我對Idea中載入各種資原始檔(.xml、.properties等)做了研究總結。為了說明問題,下面建立一個Spring的test工程,目標就是執行後在控制檯列印一個“Hello World!”,著重看Idea中資源的配置方法。以及不同配置方法會引起的不用效應。 (ad

hibernate自動設定欄位型別為資料庫為timestamp型別

1:專案需要,欄位應該設計為timestamp型別,但自動建表後總是被設定為datetime(當時用的資料庫為sqlserver) Google後,在配置檔案(Xxx.hbm.xml)中column新增 sql-type="timestamp" default="CUR

spring配置mybatis自動掃描*mapper.java和*mapper.xml配置檔案

預設mybatis需要在配置檔案中載入每個mapper.xml,例如: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD

Hibernate配置檔案資料型別date與timestamp區別

例如: <property name="createDate" type="timestamp" column="createDate"/> <property name="createDate" type="date" column="createDat

hibernate 根據註解好的實體類 自動

首先搭好框架   例如ssh然後  applicationContent.xml寫上這些<?xml version="1.0" encoding="UTF-8"?>    <property name="driverClass" value="com.mys