在Eclipse中使用Ant

在使用SSH开发项目时,而又当项目数据库表比较多时,在编写pojo类以及对应的映射文件hbm和数据库表时总是很麻烦。尤其是配置文件的编写稍不注意就会出错,Hbm文件写错了还不好跟踪。所以此时可以利用反向工程来自动生成配置文件以及pojo类(三者有其一即可自动生成另外两个,本人习惯于自己建表然后利用数据库表来自动生成对应的Hbm和pojo类),要想从DDL逆向生成Hbm需要一个额外的插件Middlegen点击下载Middlegen插件),关于使用方法,只需解压之后找到Eclipse安装目录,找到dropins文件夹,将该插件放到词位置,然后重启即可,重启之后,选中项目→New→Other→middlegen-build.xml,如果有此项说明插件添加成功。然后选择该项,弹出窗口的第一项为JDBC jar,只需点击Browse,浏览到该项目的数据库驱动程序jar包即可,后面的继续填好相应的Driver,URI,User和password即可(注意,此时的schema和category无需填写,填写的话无法Load Table),然后点击下面Load Table按钮,任意选择一张表(因为这些表都是你看不懂的,哈哈~),随后点击Finish即可。

如下即为我的Middgen-build.xml配置

<project name="Middlegen Hibernate" default="compile" basedir=".">
	<property file="./build.properties" />
	<property name="hibernate.cascade" value="all" />
	<property name="package" value="com.tang.beans" />
	<property name="gen.xdoclet-tag" value="false" />
	<property name="gui" value="true" />
	<property name="jdbc.jar" value="E:\Workspaces\Eclipse\cms\WebContent\WEB-INF\lib\classes12.jar" />
	<property name="database.driver" value="oracle.jdbc.driver.OracleDriver" />
	<property name="lib.dir" value="/D:/Program Files/Eclipse/dropins/plugins/net.sf.middlegen_2.1.91/lib/" />
	<property name="database.url" value="jdbc:oracle:thin:@localhost:1521:mogu" />
	<property name="database.userid" value="jonny2" />
	<property name="database.password" value="jonny" />
	<property name="database.schema" value="jonny2" />
	<property name="database.catalog" value="mogu" />
	<property name="dest.dir" value="src" />

	<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="${dest.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 is not found. Please install Middlegen.
      </fail>
	</target>

	<target name="fail-if-no-hibernate" unless="hibernate">
		<fail>
      Hibernate is not found. Please install Hibernate.
      </fail>
	</target>

	<target name="fail-if-no-hibernate-ext" unless="hibernate-ext">
		<fail>
      Hibernate-Extension is not found. Please install Hibernate-Extenstion.
      </fail>
	</target>

	<target name="gen-hbm" depends="init">

		<middlegen appname="com.tang.beans" prefsdir="." gui="${gui}" databaseurl="${database.url}" driver="${database.driver}" username="${database.userid}" password="${database.password}" schema="${database.schema}" catalog="${database.catalog}">
			<hibernate version="3.0" destination="${dest.dir}" package="${package}" genXDocletTags="${gen.xdoclet-tag}" standardCascade="${hibernate.cascade}" javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper" />
			
			<table name="TADMIN" />
			<table name="TMEMBER" />
			<table name="TTOPIC" />
			<table name="TARTICLE" />
			<table name="TCOMMENT" />
			<table name="TCHANNEL" />
			<table name="TCHANNELARTICLE" />
			<table name="TATTACHMENT" />
			
		</middlegen>
	</target>

	<target name="gen-java" depends="gen-hbm">
		<hbm2java output="${dest.dir}">
			<fileset dir="${dest.dir}">
				<include name="**/*.hbm.xml" />
			</fileset>
		</hbm2java>
	</target>

	<target name="compile" depends="gen-java">
	</target>

</project>
这样配置好了之后即可通过该文件生成对应的Hbm映射文件了,配置后了之后运行该xml文件,点右键→Run As→2 Ant build,随后会弹出一个窗口,点击Generate即可。此时Hbm和pojo类都已自动生成好了,但是需要做相应修改,首先,在Hbm文件中,指定自己需要的主键生成策略以及延迟加载。而pojo类,默认的已经重写了该类的ToString方法,这时,首先将刚刚生成的Hbm文件都添加到Hibernate的配置文件中去,指定好所有的<mapping resource>,然后运行另一个xml文件,build.xml文件即可。

如下build.xml

<?xml version="1.0" encoding="utf-8" ?>
<project name="hibernate3配置文件" default="dbschema" basedir=".">
	<!--上面的 "." 表示当前项目-->
	<property file="build.properties" />

	<target name="init">
		<path id="libpath">
			<!--引入项目编译后的class文件的目录,不引会出错-->
			<pathelement path="${build.classes}" />
			<!--引入src下的各种xml文件,实际上是引入hibernate.cfg.xml-->
			<fileset dir="${src}">
				<include name="*/*.xml" />
			</fileset>
			<!--引入lib下的各种jar包-->
			<fileset dir="${lib}">
				<include name="**/*.jar" />
			</fileset>

		</path>
	</target>

	<!--生成存放schema的文件夹-->
	<target name="prepare" depends="init" >
		<mkdir dir="${dbschema.src}" />		
	</target>

	<!--扩展标签-->
	<taskdef name="hibernatetools" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="libpath" />

	<!--生成java和dbschema文件-->
	<target name="dbschema" depends="prepare">
		<hibernatetools>
			<configuration configurationfile="${src}/hibernate.cfg.xml" />
			<!-- jdk5="true"表示生成的java文件会使用泛型-->
			<!-- destdir="${src}"的值为src,但因先运行了-->
			<!--middlegen-build.xml,运行后java和hbm文件-->
			<!--落在了指定的目录(com.tangzhongsa.bean)中,-->
			<!--虽然下面指定生成的java文件在src下,但实际会落在-->
			<!-- com.tangzhongsa.bean中,具体原因不知道,-->
			<!--即使先运行build.xml文件也一样。-->
			<hbm2java destdir="${src}" jdk5="true" />
			
			<hbm2ddl destdir="${dbschema.src}" export="false" outputfilename="builddbschema.sql" />
		</hibernatetools>
	</target>


</project>

另外一个配置文件build.properties

src=src
lib=WebContent/WEB-INF/lib
build.classes=build/classes
dbschema.src=WebContent/databaseScripts

(附: 点击下载完整示例配置文件

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值