Username: Password:

让Struts和Hibernate顺利协同工作
来源:linux宝库作者:linux宝库 发布时间:2007-09-30 00:00:00


  安装篇

  一,下载安装 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映射文档。

  

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅