欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于J2EE Struts框架的课程设计实训项目——BBS论坛系统——构造基于Hibernate框架的持久层组件并测试对应的实体映射配置.doc

    • 资源ID:4913842       资源大小:935.01KB        全文页数:28页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于J2EE Struts框架的课程设计实训项目——BBS论坛系统——构造基于Hibernate框架的持久层组件并测试对应的实体映射配置.doc

    杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料基于J2EE Struts框架的课程设计实训项目BBS论坛系统构造基于Hibernate框架的持久层组件并测试对应的实体映射配置1.1.1 构造Hibernate框架的开发环境1、hibernate3.3的系统包文件的结构与前面的各个版本的文件结构发生了变化。2、将Hibernate的库文件放到Web应用的/WEB-INF/lib目录中-针对Hibernate3.2以前的版本(1)下载Hibernate的系统并解压缩包然后将下面的各个*.lib库文件(总共10文件)在Eclipse中导入放到Web应用的/WEB-INF/lib目录中。antlr-2.7.5H3.jar、cglib-2.1.2.jar、asm.jar、commons-collections-2.1.1.jar、commons-logging.jar(在Struts中已经包含有,可以不再需要它)、 ehcache.jar hibernate3.jar、jta.jar、dom4j-1.6.1.jar和log4j-1.2.11.jar、c3p0-0.9.1.jar。(2)最后为下面的状态3、将Hibernate的库文件放到Web应用的/WEB-INF/lib目录中-针对Hibernate3.3版本(1)下载Hibernate3.3的系统并解压缩包(2)下载SLF4J (http:/www.slf4j.org/download.html)(3)然后将下面的各个*.lib库文件(总共13文件)在Eclipse中导入放到Web应用的/WEB-INF/lib目录中。antlr-2.7.5H3.jar、hibernate-cglib-repack-2.1_3.jar、commons-collections-3.1.jar、commons-logging.jar(在Struts中已经包含有,可以不再需要它)、 javassist-3.4.GA.jar、ehcache.jar hibernate3.jar、jta-1.1.jar、dom4j-1.6.1.jar和log4j-1.2.11.jar、slf4j-api-1.5.2.jar和slf4j-simple-1.5.2.jar和c3p0-0.9.1.jar。(4)最后为下面的状态4、设计hibernate.cfg.xml的配置文件(1)新建hibernate.cfg.xml文件(2)该文件的内容如下(本例进行采用MySQL数据库及JDBC驱动程序)<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-/Hibernate/Hibernate Configuration DTD/EN" "<hibernate-configuration> <session-factory><!- 下面为与数据库有关的属性项目 -> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql:/localhost:3306/bbsdatabase</property> <property name="connection.username">root</property> <property name="connection.password">root</property><!- 下面为C3P0有关的属性项目 -> <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> <property name="c3p0.min_size">2</property> <property name="c3p0.max_size">2</property> <property name="c3p0.timeout">500</property> <property name="c3p0.max_statements">100</property> <property name="c3p0.idle_test_period">3000</property> <property name="c3p0.acquire_increment">2</property> <property name="c3p0.validate">false</property> <property name="show_sql">true</property><!- 下面为启用Query Cache有关的属性项目 -> <property name="cache.use_query_cache">true</property> <property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property> <property name="log4j.logger.org.hibernate.cache">debug</property> <mapping resource="UserInfoPO.hbm.xml" /> <mapping resource="AdminUserInfoPO.hbm.xml" /> <mapping resource="BBSInfoPO.hbm.xml" /> <mapping resource="BBSTitleInfoPO.hbm.xml" /> <mapping resource="BBSReplyInfoPO.hbm.xml" /> </session-factory></hibernate-configuration>注意:在开发中为了简化采用了Hibernate中所内带的C3P0的数据库连接池方式,在项目的最后进行集成时再根据应用的需要改变为采用其它形式的数据库连接池方式。<bean id="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><property name="driverClass" value="$c3p0.driverClass"></property><property name="jdbcUrl" value="$c3p0.url"></property><property name="user" value="$c3p0.user"></property><property name="password" value="$c3p0.password"></property><property name="acquireIncrement" value="$c3p0.acquireIncrement"></property><property name="initialPoolSize" value="$c3p0.initialPoolSize"></property><property name="maxIdleTime" value="$c3p0.maxIdleTime"></property><property name="maxPoolSize" value="$c3p0.maxPoolSize"></property><property name="minPoolSize" value="$c3p0.minPoolSize"></property><property name="acquireRetryDelay" value="1000"></property><property name="acquireRetryAttempts" value="60"></property><property name="breakAfterAcquireFailure" value="false"></property></bean>(3)可以在MyEclipse的Hibernate的可视化向导中进行对hibernate.cfg.xml的配置5、配置log4j.properties属性文件在应用系统运行过程中,可以观察Hibernate的提示内容。但如果在系统中已经添加了,就可以不再需要重复地添加。运行过程中将产生出下面的日志文件1.1.2 映射BBS数据访问层中的各个实体PO类1、映射UserInfoPO类与UserInfo数据库表中的各个字段(1)在Eclipse开发工具中增加一个UserInfoPO.hbm.xml文件(2)内容如下<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN" "<hibernate-mapping> <class name="com.px1987.webbbs.dao.UserInfoPO" table="UserInfo"> <cache usage="read-write"/> <id name="id" type="java.lang.String" > <column name="userID" not-null="true" /> <generator class="uuid.hex"> </generator> </id> <property name="userName" /><property name="userPassWord" /> <property name="userType" /><property name="aliaoName" /> <property name="passWordAsk" /><property name="userImage" /> <property name="registerTime" /> <property name="passWordAnswer" /><property name="userMail" /><property name="userSex" /><property name="userBirthDay" /><property name="userComeFrom" /><property name="userResume" /><property name="userSign" /><property name="emailVisible" /><property name="acceptAdvise" /> <map name="contactMethod" table="UserContactInfo"> <cache usage="read-write" region="contactMethod"/> <key column="userID" not-null="true"/> <index column="contactKey" type="string"/> <element type="string" column="contactText" /> </map> <set name=" bbsInfos" table="BBS" inverse="true" cascade="all"> <key column="userID"/> <one-to-many class="com.px1987.webbbs.dao.BBSInfoPO"/></set> </class></hibernate-mapping>(3)保证在hibernate.cfg.xml文件中添加对UserInfoPO.hbm.xml的引用定义<mapping resource="UserInfoPO.hbm.xml"/>2、映射前面的AdminUserInfoPO数据库表中的各个字段(1)增加一个AdminUserInfoPO.hbm.xml文件(2)内容如下<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN" "<hibernate-mapping> <class name="com.px1987.webbbs.dao.AdminUserInfoPO" table="AdminUserInfo"> <cache usage="read-write"/> <id name="id" type="java.lang.String" > <column name="userID" not-null="true" /> <generator class="uuid.hex"> </generator> </id> <property name="userName" /> <property name="userPassWord" /> <property name="userType" /><property name="aliaoName" /> <property name="passWordAsk" /><property name="userImage" /> <property name="registerTime" /> <property name="passWordAnswer" /> <property name="userMail" /><property name="userSex" /><property name="userBirthDay" /><property name="userComeFrom" /><property name="userResume" /><property name="workUnit" /><property name="studyHistory" /><property name="studySchool" /><property name="idCardNo" /> </class></hibernate-mapping>(3)保证在hibernate.cfg.xml文件中添加对AdminUserInfoPO.hbm.xml的引用定义<mapping resource="AdminUserInfoPO.hbm.xml"/>3、映射前面的BBSInfoPO.hbm.xml数据库表中的各个字段(1)增加一个BBSInfoPO.hbm.xml文件(2)内容如下<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN" "<hibernate-mapping><class name="com.px1987.webbbs.dao.BBSInfoPO" table="BBS"> <id name="bbsID" type="java.lang.Integer" > <column name="bbsID" not-null="true" /> <generator class="increment"> </generator> </id> <property name="author" /><property name="title" /> <property name="replay" /><property name="hits" /> <property name="sendInfoTime" /> <!- <property name="content" type="java.sql.Clob" column="content"/> -> <property name="content" type="java.lang.String" column="content"/><property name="mailto" /><!- <property name="abstractText" type="java.sql.Clob" column="abstract" /> -> <property name="abstractText" type="java.lang.String" column="abstract" /><property name="lastUpdateTime" /><property name="bbsIconID" /><property name="bbsTypeID" /><property name="bbsTitleID" /><property name="userID" /> <set name="bbsReplyInfos" table="BBSReply" inverse="true" cascade="all"> <key column="bbsID"/> <one-to-many class="com.px1987.webbbs.dao.BBSReplyInfoPO"/></set> </class></hibernate-mapping>(3)保证在hibernate.cfg.xml文件中添加对BBSInfoPO.hbm.xml的引用定义<mapping resource="BBSInfoPO.hbm.xml"/>4、映射前面的BBSTitleInfoPO.hbm.xml数据库表中的各个字段(1)增加一个BBSTitleInfoPO.hbm.xml文件(2)内容如下<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN" "<hibernate-mapping><class name="com.px1987.webbbs.dao.BBSTitleInfoPO" table="BBSTitle"><cache usage="read-write"/> <id name="bbsTitleID" type="java.lang.Integer" > <column name="bbsTitleID" not-null="true" /> <generator class="increment"> </generator> </id> <property name="bbsTitle" /><property name="titleLeaderName" /> <property name="totalTopicNumber" /><property name="todayTopicNumber" /> <property name="lastSendTime" /><property name="lastTopicAuthor" /> <property name="newTopic" /> <property name="titleAbstractText" /> <property name="userID" /> <set name="bbsInfos" table="BBS" inverse="true" cascade="all"> <key column="bbsTitleID"/> <one-to-many class="com.px1987.webbbs.dao.BBSInfoPO"/></set> </class></hibernate-mapping>(3)保证在hibernate.cfg.xml文件中添加对BBSTitleInfoPO.hbm.xml的引用定义<mapping resource="BBSTitleInfoPO.hbm.xml"/>5、映射前面的BBSReplyInfoPO.hbm.xml数据库表中的各个字段(1)增加一个BBSReplyInfoPO.hbm.xml文件(2)内容如下<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN" "<hibernate-mapping><class name="com.px1987.webbbs.dao.BBSReplyInfoPO" table="BBSReply"> <id name="id" type="java.lang.Integer" > <column name="replyID" not-null="true" /> <generator class="increment"> </generator> </id> <property name="bbsID" /><property name="author" /><!- <property name="content" type="java.sql.Clob" column="content"/> -> <property name="content" type="java.lang.String" column="content"/><property name="replytime" /><!- <property name="abstractText" type="java.sql.Clob" column="abstract" /> -> <property name="abstractText" type="java.lang.String" column="abstract" /> <property name="replyTitle" /> <property name="bbsReplyIconID" /> </class></hibernate-mapping>(3)保证在hibernate.cfg.xml文件中添加对BBSReplyInfoPO.hbm.xml的引用定义<mapping resource="BBSReplyInfoPO.hbm.xml"/>6、映射前面的RoleInfoPO.hbm.xml数据库表中的各个字段(1)增加一个RoleInfoPO.hbm.xml文件(2)内容如下<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN" "<hibernate-mapping> <class name="com.px1987.webbbs.dao.RoleInfoPO" table="roleInfo"> <id name="id" type="java.lang.Integer" > <column name="roleID" not-null="true" /> <generator class="increment"> </generator> </id> <property name="roleName" /><property name="sendMessage" /> <property name="updateMessage" /><property name="updateUserInfo" /> <property name="userID" /> </class></hibernate-mapping>(3)保证在hibernate.cfg.xml文件中添加对RoleInfoPO.hbm.xml的引用定义<mapping resource="RoleInfoPO.hbm.xml"/>1.1.3 对Hibernate的系统配置及各个实体PO组件的映射关系进行单元测试1、测试要点(1)对Hibernate组件的测试主要涉及如下两个方面的测试1) 对其hibernate.cfg.xml文件以及各个 O/R Mapping 的*.xml文件2) 基于hibernate的DAO组件中的各个数据访问功能的方法进行测试。目前只对“对其hibernate.cfg.xml文件以及各个 O/R Mapping 的*.xml文件”进行测试。(2)在测试用例类中利用Configuration类中的configure()方法来定位被测试系统的hibernate.cfg.xml文件,从而获得SessionFactory,最后获得Session。2、在测试项目中添加Hibernate的各个系统包文件,最后的状态为下面3、添加对各个*.xml文件进行测试的TestCase类(1)新增一个测试用例(2)类名称为TestHibernateXML,包名称为com.px1987.webbbs.hibernatedaotest,基类为junit.framework.TestCase(3)编程该测试用例package com.px1987.webbbs.daotest;import junit.framework.TestCase;import junit.framework.*;import org.hibernate.cfg.*;import org.hibernate.*;import java.io.File;public class TestHibernateXML extends TestCase private SessionFactory sessionFactory=null; protected void setUp() throws Exception super.setUp();/根据实际改变 File file =new File("D:/WebBBSApp/SSHWebBBS/WebRoot/WEB-INF/classes/hibernate.cfg.xml"); Configuration config = new Configuration().configure(file); sessionFactory = config.buildSessionFactory(); /对hibernate.cfg.xml中各个配置项目进行测试 public void testHibernateXML() this.assertNotNull(sessionFactory); protected void tearDown() throws Exception sessionFactory=null; super.tearDown(); (4)执行该TestCase类-右击该测试用例类,并选择执行的方式为JUnit测试(5)将出现下面的结果(6)同时在控制台中出现下面的状态提示如果出现错误,将出现下面的提示,比如将UserInfoPO.hbm.xml中的类名称故意写错误<class name="com.px1987.webbbs.dao.UserInfoPO2" table="UserInfo">,将出现下面的错误提示杨教授大学堂,版权所有,盗版必究。 28/28页

    注意事项

    本文(基于J2EE Struts框架的课程设计实训项目——BBS论坛系统——构造基于Hibernate框架的持久层组件并测试对应的实体映射配置.doc)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开