以SQL Server配置Middlegen和extensions產生hbm和POJO

SQL Server配置Middlegenextensions產生hbmPOJO
作者:楊曉(http://blog.sina.com.cn/u/1237288325)
1、      所使用的軟件及其版本如下:
ant-1.6.5
Middlegen-Hibernate-r5
hibernate-extensions-2.1
hibernate-2.1.6
以上均解壓到D
 
2、      配置ant
ant考到D:根目錄
環境變量里加上ANT_HOME=D://ant
PATH=D://ant//bin;
DOS命令行下輸入ant, 如果出現如下提示,就說明ant已配置成功了:
Buildfile: build.xml does not exist!
Build failed
 
3、      配置Middlegen-Hibernate:
3.1 配置mssql.xml文件,此文件用來配置SQL Server數據庫連接
SQL Server三個jar文件(mssqlserver.jar; msbase.jar; msutil.jar)copyMiddlegen-Hibernate-r5/lib目錄中。
Middlegen-Hibernate-r5/config/database目錄中有一個mssql.xml文件,是用來配置SQL Server數據庫的連接的。內容修改如下(紅色爲修改部分)爲:
<property name="database.script.file"           value="${src.dir}/sql/${name}-mssql.sql"/>
<property name="database.driver.file"   value="${lib.dir}/mssqlserver.jar"/>
<property name="database.driver"                value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
<!—粗體部分的結構爲: //數據庫服務器名或IP;database=要操作的數據庫名 -->
<property name="database.url"                   value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind"/>
<property name="database.userid"                value="admin"/>
<property name="database.password"              value="admin"/>
<!-- In MS SQL database.schama is the owner of the tables as displayed by SQL Server Enterprise Manager -->
<property name="database.schema"                value="dbo"/>
<!-- In MS SQL database.catalog is the name of database such as 'Northwind' -->
<property name="database.catalog"               value=" Northwind"/>
<property name="jboss.datasource.mapping"       value="MS SQLSERVER"/>
 
3.2 配置Middlegen-Hibernate-r5ant運行文件build.xml
<!DOCTYPE project [
    <!ENTITY database SYSTEM "file:./config/database/mssql.xml">
]>
指出使用的數據庫配置文件。
<project name="Middlegen Hibernate" default="all" basedir=".">
   <property file="${basedir}/build.properties"/>
   <property name="name" value="sample"/>
指出生成的*.hbm.xml輸出的路徑:
   <property name="build.gen-src.dir"              value="C:/sample"/>
配置hibernate
         <hibernate
            destination="${build.gen-src.dir}"
package="org.hibernate.sample——————指出hbm所在的包的位置。
            genXDocletTags="true" ——————指出hbm.xml中是否需要XDoclet Tags
            genIntergratedCompositeKeys="false"
            javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
         />
配置Middlegen
      <middlegen
         appname="${name}"
         prefsdir="${src.dir}"
         gui="${gui}"
         databaseurl="${database.url}"
         initialContextFactory="${java.naming.factory.initial}"
         providerURL="${java.naming.provider.url}"
         datasourceJNDIName="${datasource.jndi.name}"
         driver="${database.driver}"
         username="${database.userid}"
         password="${database.password}"
        schema="${database.schema}"
        catalog="${database.catalog}"
        includeViews="true"——————指出包括視圖。
      >
 
4、      運行Middlegen-Hibernate:
Middlegen-Hibernate目錄下運行ant,進入Middlegen-Hibernate的圖形界面。可以設置表,和字段的特性。然後按Genarate,產生hbm.xml文件。
 
5、      配置hibernate-extensions
5.1 hibernate-extensions/tools/bin目錄下有3個工具,他們的功能如下:
5.1.1 class2hbm.bat
根據POJO class 生成映射文件
也就是根據你自己對應表所寫的java文件,生成相應的*.hbm.xml文件;

5.1.2 ddl2hbm.bat
由數據庫導出庫表結構,並生成映射文件以及POJO。這個功能與MiddleGen 的功能重疊,也不夠成熟(實際上已經被廢棄,不再維護);

5.1.3 hbm2java.bat
根據映射文件生成對應的POJO,即根據Middlegen生成的*.hbm.xml文件再生成相應的*.java文件
 
5.2 hibernate-extensions-2.1.2/tools/bin目錄有一個setenv.bat文件,改變其內容爲:
set JDBC_DRIVER=D:/Middlegen-Hibernate-r5/lib/mssqlserver.jar
set HIBERNATE_HOME=../../hibernate-2.1.6
set CORELIB=%HIBERNATE_HOME%/lib
set LIB=../lib
set PROPS=%HIBERNATE_HOME%/src
set CP=%JDBC_DRIVER%;%PROPS%;%HIBERNATE_HOME%/hibernate2.jar;%CORELIB%/commons-logging-1.0.4.jar;%CORELIB%/commons-collections-2.1.1.jar;%CORELIB%/commons-lang-1.0.1.jar;%CORELIB%/cglib-full-2.0.2.jar;%CORELIB%/dom4j-1.4.jar;%CORELIB%/odmg-3.0.jar;%CORELIB%/xml-apis.jar;%CORELIB%/xerces-2.4.0.jar;%CORELIB%/xalan-2.4.0.jar;%LIB%/jdom.jar;%LIB%/../hibernate-tools.jar
 
6、      運行hibernate-extensions,根據hbm.xml產生POJO文件
DOS中運行hbm2java c:/sample/org/hibernate/sample/*.xml --output=c:/sample/
 
關於作者:
楊曉,北京工商大學計算機碩士,曾在NEC-SI、Softbrain 擔任java開發工作。
博客:http://blog.sina.com.cn/u/1237288325
MSN: [email protected]


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章