让Struts与Hibernate顺利协同工作
2008-01-05 10:10:48 来源:WEB开发网核心提示:安装篇一,下载安装 j2sdk1.4(www.sun.com))或以上,设置 CLASSPATH,让Struts与Hibernate顺利协同工作,java_home,二,就将出现MiddleGen的界面:选择需要的表,单击窗口顶部的Generate 按钮,下载服务器,免费版本的有 tomcat,resin,当然也还有
安装篇
一,下载安装 j2sdk1.4(www.sun.com))或以上,设置 CLASSPATH,java_home。
二,下载服务器,免费版本的有 tomcat,resin,当然也还有 weblogic之类的巨无霸,不过得看你电脑的配置是否承受的了!
这里只以resin来说明,其他的配置都差不多,可以查看各个服务器自带的说明文件。
resin 服务器可以在 caUCho.com下载,选择合适的版本,下载解压缩就可以直接使用。
这里resin有一个 resin-ee版本,这个主要是带ejb功能支持的。 假如用不到ejb,一般的就足够了。
三,然后就是数据库,有很多数据库产品可以选择,DB2,Oracle,MSSQL,MySQL等等太多了。这里我选择MySQL,不仅因为它是免费的,而且它的4.0版本在继续以前版本的快速稳定的基础上,整合了InnoDB(http://www.innodb.com)先进的事务处理机制。相信伴随着linux的壮大,它将在商业数据库市场占的一席之地。不过就数据库本身,它还缺少子查询等强大功能的支持。
安装就不多说了,配置好用户名,密码。 然后就可以下载 MySQL-Front 来可视化操作数据库。
四,在Java编程上,一个IDE的功能显然不可缺少,现在流行的IDE很多,有JBuilder,Eclipse,IntellJ IDEA,JCreator等等,其中 eclipse借着开源东风,依靠强大的插件功能被誉为最有前途的工具,JBuilder从来都最强大功能的java工具,不过大到我的电脑实在运行不了,穷啊,可没钱配新电脑。所以我还是喜欢JCreator,小巧而又功能不俗,应付小规模的应用绰绰有余。编译开发时要想获得提示支持,需要在 configure--option--JDK PRofiles 导入jar文件。
五,一个站点前台的界面开发,当然离不开大名鼎鼎的 Dreamweaver 了,它支持jsp,asp等很多语言的开发。非凡是最近的Dreamweaver MX 2004 增强了站点的功能,可以方便的对一个站点进行控制。面对struts的前台自定义标签,有一个mXP插件可以用来支持显示sturts的标签。使用前还要在编辑--标签库 里面导入.tld文件,目前只支持Html,和bean 两个标签。
配置篇
一,resin虚拟站点配置
<host id='yourweb:8080' app-dir='e:\blog\' class-update-interval='2'>
<web-app id='/'>
<Directory-servlet id='false'/>
</web-app>
<error-log id='log/web-error.log'/>
<host>
然后在定义的目录下面建立站点。
二,Dreamweaver站点的配置就不多说了。
三,Struts的配置
这里我们使用的是struts1.1,下载并解压缩到临时文件夹,就假设是tem文件夹吧。
首先拷贝tem/lib/下面所有的.tld文件到站点的/WEB-INF/目录下,再拷贝所有的.jar文件到/WEB-INF/lib/目录下,最后web.xml文件中的配置差不多如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- The Usual Welcome File List -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- Struts Tag Library Descriptors -->
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-logic</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-nested</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-tiles</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
</web-app>
四,Hibernate配置
下载并拷贝/lib目录下的
hibernate2.jar
commons-beanutils.jar
commons-collections.jar
commons-dbcp.jar
commons-lang.jar
commons-logging.jar
commons-pool.jar
dom4j.jar
cglib-asm.jar
connector.jar
到应用站点的/lib目录下。接下来配置 hibernate.cfg.xml文件
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">
jdbc:mysql://localhost:3306/yourdatabase
</property>
<property name="hibernate.connection.driver_class">
org.gjt.mm.mysql.Driver
</property>
<property name="hibernate.connection.username">
yourname
</property>
<property name="hibernate.connection.passWord">
youyrpassword
</property>
<!?- 是否将运行期生成的SQL输出到日志以供调试-->
<property name="show_sql">false</property>
<!--dialect ,每个数据库都有其对应的Dialet以匹配其平台特性-->
<propertyname="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
<!?- 事务治理类型,这里我们使用JDBC Transaction -->
<property name="transaction.factory_class">
net.sf.hibernate.transaction.JDBCTransactionFactory</property>
<property name="jdbc.batch_size">10</property>
<property name="jdbc.use_scrollable_resultset">true</property>
<!?映射文件配置,注重配置文件名必须包含其相对于根的全路径-->
<mapping resource="net/seerlog/hbm/Cat.hbm.xml"/>
</session-factory>
</hibernate-configuration>
以上配置了数据库连接所用的地址和用户名,密码等。具体参数的含义请参考官方文档。
映射文件的内容可以手工来写,也可通过一些工具来自动生成。
整个需要两种文件: .hbm.xml配置文件 和 .java持久化对象 , 两者是相互关联的,.hbm.xml 对数据库的映射还需要 .java这个bean来操作。所以整个过程需要首先设计好数据库,然后根据数据库导出 .hbm.xml文件 ,然后再导出 .java 文件。 有很多工具可以实现这个工程,我们这里采用 Middlegen-Hibernate来实现 数据库到.hbm.xml文件的转化,用Hibernate-Extension工具包中的 hbm2java 来实现 .hbm.xml 到 .java 文件的转化!
查找要害字”!ENTITY”,得到:
<!DOCTYPE project [
<!ENTITY database SYSTEM
"file:./config/database/hsqldb.xml">
]>
b) Application name
<property name="name" value="airline"/>
c) 输出目录
查找要害字“name="build.gen-src.dir"”,得到:
<property name="build.gen-src.dir" value="${build.dir}/gen-src"/>
d) 对应代码的Package name
<hibernate
destination="${build.gen-src.dir}"
package="${name}.hibernate"
genXDocletTags="false"
genIntergratedCompositeKeys="false"
javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
/>
配置完成后,在MiddleGen 根目录下运行ant,就将出现MiddleGen的界面:
选择需要的表,单击窗口顶部的Generate 按钮,MiddleGen 即为我们生成这些数据库表所对应的Hibernate映射文件。
- ››Hibernate高级应用:性能优化策略
- ››hibernate 多对多关系详解(包括中间表,一对多字表...
- ››Hibernate实现mysql数据库limit查询方法
- ››Struts2配置文件中redirect传递中文参数乱码的解决...
- ››顺利打开Outlook Express邮件附件
- ››顺利打开Outlook Express奇怪的邮件附件
- ››StrutsTestCase 简化开发过程
- ››Hibernate 之父:是时候升级到Java EE 6了
- ››struts 中一些包的详解
- ››Hibernate查询
- ››struts1与struts2的区别
- ››Hibernate和iBATIS比较(摘自网络)
更多精彩
赞助商链接