分享
 
 
 

struts与hibernate协同工作之二(配置篇)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

总论:在这一节我们要配置一个完整的应用配置。

一,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 文件的转化!

Middlegen-Hibernate 的配置如下:(最好是放到c盘根目录下面)

进入MiddleGen 目录下的\config\database 子目录,根据我们实际采用的数据库打开对应的配置文件。如这里我们用的是mysql数据库,对应的就是mysql.xml 文件。

<property name="database.script.file" value="${src.dir}/sql/${name}-mysql.sql"/>

<property name="database.driver.file" value="${lib.dir}/mysql.jar"/>

<property name="database.driver.classpath" value="${database.driver.file}"/>

<property name="database.driver" value="org.gjt.mm.mysql.Driver"/>

<property name="database.url" value="jdbc:mysql://localhost/sample"/>

<property name="database.userid" value="user"/>

<property name="database.password" value="mypass"/>

<property name="database.schema" value=""/>

<property name="database.catalog" value=""/>

<property name="jboss.datasource.mapping" value="mySQL"/>

主要是修改以上红色的部分。

然后是修改MiddleGen 根目录下的build.xml 文件,此文件是Middlegen-Hibernate 的Ant构建配置。Middlegen-Hibernate将根据build.xml 文件中的具体参数生成数据库表映射文件。 把以下配置中红色的部分用自己的内容代替

a) 目标数据库配置文件地址

查找关键字”!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 Extension 来完成,Hibernate Extension 的tools\bin目录下包含三个工具:

1. hbm2java.bat

根据映射文件生成对应的POJO。通过MiddleGen 我们已经得到了映射文件,

下一步就是通过hbm2java.bat工具生成对应的POJO。

2. class2hbm.bat

根据POJO class 生成映射文件,这个工具很少用到,这里也就不再详细介绍。

3. ddl2hbm.bat

由数据库导出库表结构,并生成映射文件以及POJO。这个功能与MiddleGen的功能重叠,但由于目前还不够成熟(实际上已经被废弃,不再维护),提供的功能也有限,所以我们还是采用MiddleGen生成映射文件,之后由hbm2java根据映射文件生成POJO 的方式。

这里我们使用第一个hbm2java.bat,利用刚才生成的.hbm.xml文件自动生成 java 文件。

为了使用这个工具,首先我们需要配置一些参数,打开tools\bin\setenv.bat 文件,修改其中的JDBC_DRIVER和HIBERNATE_HOME环境变量,使其指向我们的实际JDBC Driver文件和Hibernate所在目录。同时检查一下环境变量CP中的各个项目中是否实际存在,特别是%CORELIB%下的jar文件,某些版本的发行包中,默认配置中的文件名与实际的文件名有所出入(如%CORELIB%\commons-logging.jar, 在Hibernate 发行包中,可能实际的文件名是commons-logging-1.0.3.jar,诸如此类)。

使用hbm2java,根据MiddleGen生成的映射文件生成Java 代码:

打开Command Window,在tools\bin目录下执行:

hbm2java c:\sample\org\hibernate\sample\*.xml --output=c:\sample\

通过以上步骤我们就生成了所需要的所有基本配置文件。接下来就可以来初始化这些配置啦。

本章就写到这里了先.....

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有