top
Loading...
Hibernate:利用配置文件生成數據庫

目前很多人使用Hibernate作為持久層,如果我們已經寫了配置文件poweracl.hbm.xml,則不必再費勁寫SQL的DDL。除了利用工具SchemaExport之外,還可以編寫程序來自動初始化數據庫,并且生成SQL DDL。

(1)Hibernate配置文件hibernate.cfg.xml

com.mysql.jdbc.Driverjdbc:mysql://localhost/hibtesttest12345620true50 25 false net.sf.hibernate.dialect.MySQLDialect 

注意:(1)JDBC驅動為com.mysql.jdbc.Driver,可以根據所使用的庫而更換。

(2)dialect為數據庫方言,根據所使用數據庫不同而不同。這里是Mysql。

(3)jdbc.fetch_size和jdbc.batch_size過小會降低性能,這里是建議設置。

(4)mapping文件根據文件所在路徑而不同。這里是放在WEB-INF/classes/com/hibtest/目錄下。

(2)數據庫映射配置poweracl.hbm.xml

 

說明:具體的poweracl.hbm.xml要根據數據庫表而設置,這里只是列舉一個user表。

(3) 初始化數據庫類

package com.hibtest;import net.sf.hibernate.HibernateException;import net.sf.hibernate.Session;import net.sf.hibernate.SessionFactory;import net.sf.hibernate.Transaction;import net.sf.hibernate.cfg.Configuration;import net.sf.hibernate.tool.hbm2ddl.SchemaExport;import java.io.File;import java.util.HashSet;import java.util.Set;/*** 

vedadou* Date: 2004-02-25* Time: 9:40:15*/public class InitDB {static Session session;public static void main(String[] args) {Configuration config = null;Transaction tx = null;try {config = new Configuration().configure(new File("hibernate.cfg.xml"));System.out.println("Creating tables...");SchemaExport schemaExport = new SchemaExport(config);schemaExport.create(true, true);System.out.println("Table created.");SessionFactory sessionFactory = config.buildSessionFactory();session = sessionFactory.openSession();tx = session.beginTransaction();tx.commit();} catch (HibernateException e) {e.printStackTrace();try {tx.rollback();} catch (HibernateException e1) {e1.printStackTrace();}} finally {}}}

注意:在初始化之前,應該先手工創建一個空數據庫,然后再執行InitDB程序

(責任編輯:代君利)

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗