`

如何实现webwork+spring+hibernate框架的结合应用

阅读更多

现在WebWork+Spring+Hibernate这种框架已经越来越得到人们地推荐使用,至于这种框架的优越性以及为什么选择这种框架的结合不在本文范畴;另外对于一些项目中基本的构建将不在本文中详细叙述;下面就开始正题,如何建立这种框架应用:
第一步:当然是首先要构建一个Java web project项目,建立好项目以后创建包的命名。在本例中建立了项目目录与包结构如下图:

第二步:导入所有须要的资源类库:


第三步:项目搭建好以后,开始正式的程序编写开发工作。
首先在com.etong.bookstore.vo包面分别建立以下几个类(Book、Catalog、Orderitem、Orders、User)。
由于受篇幅所限,本实例中只列出User类的相关代码。

User类文件代码内容如下:
packagecom.etong.bookstore.vo;

importjava.util.HashSet;
importjava.util.Set;

/***//**
*
*<p>Title:</p>
*<pre>Description:com.etong.bookstore.vo.User.java</pre>
*<p>Copyright:Copyright(c)2008</p>
*Jan16,2008
*
@authorAllen
*
@version1.0
*@hibernate.class
*/

@SuppressWarnings(
"serial")
publicclassUserimplementsjava.io.Serializable...{


//Fields

/***//**
*@hibernate.id
*generator-class="native"
*/

privateIntegeruserid;

/***//**
*@hibernate.propertynot-null="true"length="20"
*/

privateStringusername;

/***//**
*@hibernate.propertynot-null="true"length="20"
*/

privateStringpassword;

/***//**
*@hibernate.propertylength="4"
*/

privateStringsex;

/***//**
*@hibernate.property
*/

privateIntegerage;

/***//**
*@hibernate.setcascade="delete"inverse="true"
*@hibernate.keycolumn="userid"
*@hibernate.one-to-many
*class="com.etong.bookstore.vo.Orders"
*/

@SuppressWarnings(
"unchecked")
privateSetorderses=newHashSet(0);


//Constructors

/***//**defaultconstructor*/
publicUser()...{
}


/***//**minimalconstructor*/
publicUser(Stringusername,Stringpassword)...{
this.username=username;
this.password=password;
}


/***//**fullconstructor*/
@SuppressWarnings(
"unchecked")
publicUser(Stringusername,Stringpassword,Stringsex,Integerage,Setorderses)...{
this.username=username;
this.password=password;
this.sex=sex;
this.age=age;
this.orderses=orderses;
}



//Propertyaccessors

publicIntegergetUserid()...{
returnthis.userid;
}


publicvoidsetUserid(Integeruserid)...{
this.userid=userid;
}


publicStringgetUsername()...{
returnthis.username;
}


publicvoidsetUsername(Stringusername)...{
this.username=username;
}


publicStringgetPassword()...{
returnthis.password;
}


publicvoidsetPassword(Stringpassword)...{
this.password=password;
}


publicStringgetSex()...{
returnthis.sex;
}


publicvoidsetSex(Stringsex)...{
this.sex=sex;
}


publicIntegergetAge()...{
returnthis.age;
}


publicvoidsetAge(Integerage)...{
this.age=age;
}


@SuppressWarnings(
"unchecked")
publicSetgetOrderses()...{
returnthis.orderses;
}


@SuppressWarnings(
"unchecked")
publicvoidsetOrderses(Setorderses)...{
this.orderses=orderses;
}



}


将相关的所有数据库类文件建立好以后,就可以通过Ant来构建hbm.xml以及hibernate.cfg.xml文件了。

第四步:利用Ant来进行构建生成hbm.xml文件.其中Ant代码内容如下:

<?xmlversion="1.0"encoding="GBK"?>
<!--
作者:Allen
createdate:2007-08-20
-->
<projectname="bookstore"default="compile"basedir=".">

<!--数据库相关信息-->
<propertyname="jdbcdriver"value="com.mysql.jdbc.Driver"/>
<propertyname="jdbcurl"value="jdbc:mysql://localhost:3306/bookstore"/>
<propertyname="dialect"value="org.hibernate.dialect.MySQLDialect"/>
<propertyname="jdbcusername"value="root"/>
<propertyname="jdbcpassword"value="Allen"/>
<propertyname="jdbcpoolsize"value="1"/>
<propertyname="showsql"value="true"/>

<!--properies源文件夹-->
<propertyname="main.java.dir"value="src/main/java"/>
<propertyname="main.resource.dir"value="src/main/resources"/>
<propertyname="junitsrc.dir"value="src/test/java"/>
<propertyname="junitsrc.resource.dir"value="src/test/resources"/>

<!--temporarybuilddirectorynames编译及引用类库文件夹-->
<propertyname="classes.dir"value="build/classes"/>
<propertyname="bin.dir"value="bin"/>
<propertyname="dist.dir"value="dist"/>
<propertyname="lib.dir"value="WebRoot/WEB-INF/lib"/>
<propertyname="extend.lib.dir"value="vendor/lib"/>
<propertyname="xdoclet2.dir"value="vendor/xdoclet2"/>

<!--指定输出SQL语句的位置和名称-->
<propertyname="output"value="schema-export.sql"/>
<!--SystemInitinfo-->
<propertyname="initClassName"value="com.etong.bookstore.init.BookStoreSystemInit"/>
<propertyname="initSqlFile"value="systeminit-mssql.sql"/>

<!--定义web应用解压文件输出目录-->
<propertyname="war-output-file"value="D:/software_tools/apache-tomcat-6.0.14/webapps"/>
<!--定义classpath-->
<pathid="master-classpath">
<!--替换如下方式
<filesetdir="${lib.dir}">
<includename="**/*.jar"/>
</fileset>
-->
<!--
也可以写成如下方式,此方式同上面方式基本一致,这种方式可以通过include来限定
导入的类库,如果不限定即可使用通配符**/*来替代!
-->
<filesetfile="${lib.dir}/*.jar"/>
<filesetfile="${extend.lib.dir}/*.jar"/>
<pathelementpath="${classes.dir}"/>
</path>

<!--初始化开始任务-->

<targetname="init">
<mkdirdir="${main.java.dir}"/>
<mkdirdir="${main.resource.dir}"/>
<mkdirdir="${junitsrc.dir}"/>
<mkdirdir="${junitsrc.resource.dir}"/>
<mkdirdir="${bin.dir}"/>
<mkdirdir="${dist.dir}"/>
<mkdirdir="${classes.dir}"/>
<mkdirdir="${extend.lib.dir}"/>
</target>

<!--清除任务-->
<targetname="clean">
<deletedir="${classes.dir}"/>
</target>

<!--清除所有任务-->
<targetname="cleanAll"depends="clean">
<deletedir="${main.java.dir}"/>
<deletedir="${bin.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics