笔者在开发一些小型的应用中,对数据库的操作比较频繁,直接用jdbc然后手动写sql的方法比较麻烦,且效率较低,而hibernate在数据库的持久化方面有不俗的表现。因此笔者最近研究了一点有关hibernate的东西,虽说比较初级,也希望对够象我一样刚踏入hibernate编程的人有所帮助。
在hibernate的开发过程中,xml文件和dto编写相对比较麻烦,我查了网上的所有资料,没有发现jbuider对于hibernate的集成解决方案,更多的hibernate插件是针对eclipse的。对于习惯了做jbuilder开发的我来说是不能够忍受的。
经过几天的琢磨,我发现了middlegen的应用比较方便,首先我找了一个eclipse的插件middlegen,这个插件非常简单,按照eclipse的常规的插件安装方法即可完成。首先启动eclipse(我用的是3.01),如果插件安装顺利的话在file->new ->other->middlegen 下面选择middlegen-build.xml。然后nexe即可看到middlegen的界面(用过middlegen的朋友都应该非常熟悉这个界面)
如上图所示,我们可以选择oracle的驱动程序类,其他的可以按照oracle的jdbc连接来连接即可。
按generate这样一个build.xml即可生成。
注意我们这些的所有的目的就是为了产生builde.xml文件
这个文件的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<project name="Middlegen Hibernate" default="compile" basedir=".">
<property file="./build.properties"/>
<property name="cascade" value="all" />
<property name="package" value="org.ultimania.dto" />
<property name="gen.xdoclet-tag" value="true" />
<property name="gui" value="true" />
<property name="jdbc.jar" value="D:/JDBC/ORACLE/classes12.jar" />
<property name="database.driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="lib.dir" value="/d:/eclipse-SDK-3.0.1-win32/eclipse3.0.1/plugins/org.ultimania.middlegenide_0.6.0/middlegen-lib/" />
<property name="database.url" value="jdbc:oracle:thin:@192.168.7.9:1521:quanch" />
<property name="database.userid" value="dianxinyewu" />
<property name="database.password" value="dianxinyewu" />
<property name="database.schema" value="dianxinyewu" />
<property name="database.catalog" value="" />
<property name="output.dir" value="" />
<target name="init" depends="prepare,fail-if-no-middlegen,fail-if-no-hibernate,fail-if-no-hibernate-ext">
<taskdef
name="middlegen"
classname="middlegen.MiddlegenTask"
classpathref="middlegen.classpath"
/>
<taskdef
name="hbm2java"
classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
classpathref="hibernate-ext.classpath"
/>
<mkdir dir="${output.dir}"/>
</target>
<target name="prepare">
<path id="middlegen.classpath">
<pathelement path="${jdbc.jar}"/>
<fileset dir="${lib.dir}" includes="*.jar"/>
</path>
<path id="hibernate-ext.classpath">
<fileset dir="${lib.dir}" includes="*.jar"/>
</path>
<available property="middlegen" classname="middlegen.MiddlegenTask" classpathref="middlegen.classpath"/>
<available property="hibernate" classname="net.sf.hibernate.Hibernate" classpathref="hibernate-ext.classpath"/>
<available property="hibernate-ext" classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask" classpathref="hibernate-ext.classpath"/>
</target>
<target name="fail-if-no-middlegen" unless="middlegen">
<fail>
Middlegenをhttp://tidus.ultimania.org/tmp/から�?ウンロードして、build.propertiesのmiddlegen.dirを設定して下さ�?�?
</fail>
</target>
<target name="fail-if-no-hibernate" unless="hibernate">
<fail>
Hibernateをhttp://prdownloads.sourceforge.net/hibernate/から�?ウンロードして、build.propertiesのhibenate.dirを設定して下さ�?�?
</fail>
</target>
<target name="fail-if-no-hibernate-ext" unless="hibernate-ext">
<fail>
Hibernate-Extensionをhttp://prdownloads.sourceforge.net/hibernate/から�?ウンロードして、build.propertiesのhibenate-ext.dirを設定して下さ�?�?
</fail>
</target>
<target name="gen-hbm" depends="init">
<middlegen
appname="org.ultimania.dto"
prefsdir="."
gui="${gui}"
databaseurl="${database.url}"
driver="${database.driver}"
username="${database.userid}"
password="${database.password}"
schema="${database.schema}"
catalog="${database.catalog}"
>
<hibernate
destination="${output.dir}"
package="${package}"
genXDocletTags="${gen.xdoclet-tag}"
standardCascade="${cascade}"
javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
/>
<table name="DJMLB" />
<table name="DASYWMXB"/>
<table name="ISDNYWMXB"/>
<table name="DDNYWMXB"/>
<table name="ATMYWMXB"/>
<table name="PCMYWMXB"/>
<table name="ZZJYWMXB"/>
</middlegen>
</target>
<target name="gen-java" depends="gen-hbm">
<hbm2java output="${output.dir}">
<fileset dir="${output.dir}">
<include name="**/*.hbm.xml" />
</fileset>
</hbm2java>
</target>
<target name="compile" depends="gen-java">
<!--
<javac destDir="${output.dir}/classes"
srcDir="${output.dir}/classes"
classpathref="hibernate-ext.classpath" />
<copy todir="${output.dir}/classes">
<fileset dir="${output.dir}">
<include name="**/*.hbm.xml" />
</fileset>
</copy>
-->
</target>
<!--
<target name="jar" depends="compile">
<jar destfile="${name}.jar">
<fileset dir="${output.dir}/classes">
<include name="**/*" />
</fileset>
</jar>
</target>
-->
</project>
其实我们上面所做的所有的工作就是为了生成这样一个build.xml文件。大家可以不必按照上面的步骤走,只需要将上面的文字改动一下即可。无非就是改一下middlegen的一些类的路径,数据库的jdbc访问路径。
下面就是比较重要的了,将这个build.xml放到jbuilder的src目录下。然后copy这个文件到src下。
右键build.xml选择make这样就会出现middegen的常见的界面。
选择相应的表以及确定相应的关系即可。
这样dto以及xml文件全部生成,你就可以尽情的享受middlegen带给你的快乐了。
由于时间有限,写的比较仓促,希望大家肯评!