Middlegen-Hibernate-r5 配置教程

1)得到 Middlegen-Hibernate-r5包 后将其解压到d:/Middlegen-Hibernate-r5
下载方式:

方式一:从官网下载

       下载地址:http://nchc.dl.sourceforge.net/sourceforge/hibernate/Middlegen-Hibernate-r5.zip

方式二:从csdn资源频道下载

       下载地址:http://download.csdn.net/source/176162

 

2)把数据库驱动程序(这里用的是ojdbc14.jar)放到E:/ Middlegen-Hibernate-r5/lib目录下

3)配置数据参数E:/Middlegen-Hibernate-r5/config/database/oracle.xml

   <property environment="env"/>

   <property name="database.script.file"           value=""/>
   <property name="database.driver.file"           value="${lib.dir}/ojdbc14.jar"/>
   <property name="database.driver.classpath"      value="${database.driver.file}"/>
   <property name="database.driver"                value="oracle.jdbc.driver.OracleDriver"/>
   <property name="database.url"                   value="jdbc:oracle:thin:@192.168.0.1:1521:dbname"/>
   <property name="database.userid"                value="username"/>
   <property name="database.password"              value="password"/>
   <property name="database.schema"                value="username"/>
   <property name="database.catalog"               value=""/>

   <!--property name="jboss.datasource.mapping"       value="Oracle7"/-->
   <property name="jboss.datasource.mapping"       value="Oracle10g"/>
   <!--property name="jboss.datasource.mapping"       value="Oracle8"/-->

注意:将原文件修改黑体部分改成你需要的数据库配置,特别需要强调的是在oracle中要指定 <property name="database.schema"                value="username"/>如未指则在生成时会出问题.value值和database.userid值一样

注意 问题1:如未指定database.schema则会出现以下错误:

D:/Middlegen-Hibernate-r5/build.xml:148: middlegen.MiddlegenException: Middlegen
 successfully connected to the database, but couldn&apos;t find any tables. Perhaps t
he specified schema or catalog is wrong? -Or maybe there aren&apos;t any tables in th
e database at all?
Configured schema:
Configured catalog:
Available schemas:

  ANONYMOUS
  CTXSYS
  ...

Available catalogs:

问题1解决办法按本节的正确配置注意事项.

注意问题2: 如果未删除oracle10g中的垃圾表如"BINjR8PK5HhrrgMK8KmgQ9nw==""则会出现如下错误:

 E:/Middlegen-Hibernate-r5/build.xml:148: middlegen.MiddlegenException: Database
problem:ORA-01424: 转义符之后字符缺失或非法 (表示有垃圾表)。

问题解决办法:删除oracle10g中的垃圾表。

在oracle10g中有一个新特性就是有一个“回收站”在这里面的表无法用delete 删除,一般不影响正常使用,但是有以下情况使我们必须删除它

1,这些表占用空间
2,在使用Middlegen-Hibernate-r5的时候会生不成hibernate配置文件了,原因就在于在这里的垃圾表。必需将它删除.
3,其它情况

可以通过以下途径删除“回收站”的表:

显示“回收站”中的垃圾表
SQL> SHOW RECYCLEBIN

如果要彻底删除,使用:
SQL> PURGE TABLE "BINjR8PK5HhrrgMK8KmgQ9nw==";
删除这一个垃圾表或
SQL> PURGE RECYCLEBIN;
删除全部垃圾表。

 

4) 修改build.xml引用的数据库配置

默认情况下,Middlegan根目录下的build.xml文件引用的是hsqldb数据库。打开build.xml文件,在第23~25行找到

<!DOCTYPE project [
    <!ENTITY database SYSTEM "file:./config/database/hsqldb.xml">
]>

将其改为:(适合oracle 10g)

<!DOCTYPE project [
    <!ENTITY database SYSTEM "file:./config/database/oracle.xml">
]>

5) 修改hbm文件的输出目录

build.xml文件的第51行代码如下:

原为   <property name="build.gen-src.dir"              value="${build.dir}/gen-src"/>

默认为build/gen-src目录,当然你也可以改成你期望的xml文件输出目录.

这里修改为:<property name="build.gen-src.dir"              value="c:/hbm"/>

6 修改hbm文件的包名

在build.xml文件的第183~189行可以找到:

           <hibernate
            destination="${build.gen-src.dir}"
            package="${name}.hibernate"
            genXDocletTags="flase"
            genIntergratedCompositeKeys="false"
            javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
         />

其中${name}默认值为airline  也就是 package的默认值为airline.hibernate使用默认值生成一个.hbm文件时就对应的属于airline.hibernate包可以把它改为你要的包结构

如下:

         <hibernate
            destination="${build.gen-src.dir}"
            package="com.chenpengye.model"
            genXDocletTags="flase"
            genIntergratedCompositeKeys="false"
            javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
         />

则生成后的包为com.chenpengye.model

这里有个属性 genXDocletTags 如设置为True生成的代码将包含xdoclettag,为以后的开发过程中用借助xdoclet进行映射调整提供帮助

至此对middlegen的配置完毕,用ant 运行Middlegen-Hibernate-r5,从数据库生成对应的hbm文件.

用ant运行结果:

 


图1 middlegn 运行结果

Middlegen-Hibernate-r5 配置教程_第1张图片


图2 生成的*.hbm.xml

Middlegen-Hibernate-r5 配置教程_第2张图片                    

 

你可能感兴趣的:(oracle,Hibernate,数据库,database,oracle10g,数据库驱动程序)