歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

基于J2EE Struts框架的課程設(shè)計(jì)實(shí)訓(xùn)項(xiàng)目——BBS論壇系統(tǒng)——構(gòu)造基于Hibernate框架的持久層組件并測(cè)試對(duì)應(yīng)的實(shí)體映射配置

  • 資源ID:33833200       資源大?。?span id="7yfozic" class="font-tahoma">935.02KB        全文頁(yè)數(shù):28頁(yè)
  • 資源格式: DOC        下載積分:10積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

基于J2EE Struts框架的課程設(shè)計(jì)實(shí)訓(xùn)項(xiàng)目——BBS論壇系統(tǒng)——構(gòu)造基于Hibernate框架的持久層組件并測(cè)試對(duì)應(yīng)的實(shí)體映射配置

楊教授大學(xué)堂 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料基于J2EE Struts框架的課程設(shè)計(jì)實(shí)訓(xùn)項(xiàng)目BBS論壇系統(tǒng)構(gòu)造基于Hibernate框架的持久層組件并測(cè)試對(duì)應(yīng)的實(shí)體映射配置1.1.1 構(gòu)造Hibernate框架的開(kāi)發(fā)環(huán)境1、hibernate3.3的系統(tǒng)包文件的結(jié)構(gòu)與前面的各個(gè)版本的文件結(jié)構(gòu)發(fā)生了變化。2、將Hibernate的庫(kù)文件放到Web應(yīng)用的/WEB-INF/lib目錄中-針對(duì)Hibernate3.2以前的版本(1)下載Hibernate的系統(tǒng)并解壓縮包然后將下面的各個(gè)*.lib庫(kù)文件(總共10文件)在Eclipse中導(dǎo)入放到Web應(yīng)用的/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中已經(jīng)包含有,可以不再需要它)、 ehcache.jar hibernate3.jar、jta.jar、dom4j-1.6.1.jar和log4j-1.2.11.jar、c3p0-0.9.1.jar。(2)最后為下面的狀態(tài)3、將Hibernate的庫(kù)文件放到Web應(yīng)用的/WEB-INF/lib目錄中-針對(duì)Hibernate3.3版本(1)下載Hibernate3.3的系統(tǒng)并解壓縮包(2)下載SLF4J (http:/www.slf4j.org/download.html)(3)然后將下面的各個(gè)*.lib庫(kù)文件(總共13文件)在Eclipse中導(dǎo)入放到Web應(yīng)用的/WEB-INF/lib目錄中。antlr-2.7.5H3.jar、hibernate-cglib-repack-2.1_3.jar、commons-collections-3.1.jar、commons-logging.jar(在Struts中已經(jīng)包含有,可以不再需要它)、 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)最后為下面的狀態(tài)4、設(shè)計(jì)hibernate.cfg.xml的配置文件(1)新建hibernate.cfg.xml文件(2)該文件的內(nèi)容如下(本例進(jìn)行采用MySQL數(shù)據(jù)庫(kù)及JDBC驅(qū)動(dòng)程序)<?xml version=1.0 encoding=utf-8?><!DOCTYPE hibernate-configuration PUBLIC "-/Hibernate/Hibernate Configuration DTD/EN" "<hibernate-configuration> <session-factory><!- 下面為與數(shù)據(jù)庫(kù)有關(guān)的屬性項(xiàng)目 -> <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有關(guān)的屬性項(xiàng)目 -> <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有關(guān)的屬性項(xiàng)目 -> <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>注意:在開(kāi)發(fā)中為了簡(jiǎn)化采用了Hibernate中所內(nèi)帶的C3P0的數(shù)據(jù)庫(kù)連接池方式,在項(xiàng)目的最后進(jìn)行集成時(shí)再根據(jù)應(yīng)用的需要改變?yōu)椴捎闷渌问降臄?shù)據(jù)庫(kù)連接池方式。<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的可視化向?qū)е羞M(jìn)行對(duì)hibernate.cfg.xml的配置5、配置log4j.properties屬性文件在應(yīng)用系統(tǒng)運(yùn)行過(guò)程中,可以觀察Hibernate的提示內(nèi)容。但如果在系統(tǒng)中已經(jīng)添加了,就可以不再需要重復(fù)地添加。運(yùn)行過(guò)程中將產(chǎn)生出下面的日志文件1.1.2 映射BBS數(shù)據(jù)訪問(wèn)層中的各個(gè)實(shí)體PO類1、映射UserInfoPO類與UserInfo數(shù)據(jù)庫(kù)表中的各個(gè)字段(1)在Eclipse開(kāi)發(fā)工具中增加一個(gè)UserInfoPO.hbm.xml文件(2)內(nèi)容如下<?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文件中添加對(duì)UserInfoPO.hbm.xml的引用定義<mapping resource="UserInfoPO.hbm.xml"/>2、映射前面的AdminUserInfoPO數(shù)據(jù)庫(kù)表中的各個(gè)字段(1)增加一個(gè)AdminUserInfoPO.hbm.xml文件(2)內(nèi)容如下<?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文件中添加對(duì)AdminUserInfoPO.hbm.xml的引用定義<mapping resource="AdminUserInfoPO.hbm.xml"/>3、映射前面的BBSInfoPO.hbm.xml數(shù)據(jù)庫(kù)表中的各個(gè)字段(1)增加一個(gè)BBSInfoPO.hbm.xml文件(2)內(nèi)容如下<?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文件中添加對(duì)BBSInfoPO.hbm.xml的引用定義<mapping resource="BBSInfoPO.hbm.xml"/>4、映射前面的BBSTitleInfoPO.hbm.xml數(shù)據(jù)庫(kù)表中的各個(gè)字段(1)增加一個(gè)BBSTitleInfoPO.hbm.xml文件(2)內(nèi)容如下<?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文件中添加對(duì)BBSTitleInfoPO.hbm.xml的引用定義<mapping resource="BBSTitleInfoPO.hbm.xml"/>5、映射前面的BBSReplyInfoPO.hbm.xml數(shù)據(jù)庫(kù)表中的各個(gè)字段(1)增加一個(gè)BBSReplyInfoPO.hbm.xml文件(2)內(nèi)容如下<?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文件中添加對(duì)BBSReplyInfoPO.hbm.xml的引用定義<mapping resource="BBSReplyInfoPO.hbm.xml"/>6、映射前面的RoleInfoPO.hbm.xml數(shù)據(jù)庫(kù)表中的各個(gè)字段(1)增加一個(gè)RoleInfoPO.hbm.xml文件(2)內(nèi)容如下<?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文件中添加對(duì)RoleInfoPO.hbm.xml的引用定義<mapping resource="RoleInfoPO.hbm.xml"/>1.1.3 對(duì)Hibernate的系統(tǒng)配置及各個(gè)實(shí)體PO組件的映射關(guān)系進(jìn)行單元測(cè)試1、測(cè)試要點(diǎn)(1)對(duì)Hibernate組件的測(cè)試主要涉及如下兩個(gè)方面的測(cè)試1) 對(duì)其hibernate.cfg.xml文件以及各個(gè) O/R Mapping 的*.xml文件2) 基于hibernate的DAO組件中的各個(gè)數(shù)據(jù)訪問(wèn)功能的方法進(jìn)行測(cè)試。目前只對(duì)“對(duì)其hibernate.cfg.xml文件以及各個(gè) O/R Mapping 的*.xml文件”進(jìn)行測(cè)試。(2)在測(cè)試用例類中利用Configuration類中的configure()方法來(lái)定位被測(cè)試系統(tǒng)的hibernate.cfg.xml文件,從而獲得SessionFactory,最后獲得Session。2、在測(cè)試項(xiàng)目中添加Hibernate的各個(gè)系統(tǒng)包文件,最后的狀態(tài)為下面3、添加對(duì)各個(gè)*.xml文件進(jìn)行測(cè)試的TestCase類(1)新增一個(gè)測(cè)試用例(2)類名稱為T(mén)estHibernateXML,包名稱為com.px1987.webbbs.hibernatedaotest,基類為junit.framework.TestCase(3)編程該測(cè)試用例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();/根據(jù)實(shí)際改變 File file =new File("D:/WebBBSApp/SSHWebBBS/WebRoot/WEB-INF/classes/hibernate.cfg.xml"); Configuration config = new Configuration().configure(file); sessionFactory = config.buildSessionFactory(); /對(duì)hibernate.cfg.xml中各個(gè)配置項(xiàng)目進(jìn)行測(cè)試 public void testHibernateXML() this.assertNotNull(sessionFactory); protected void tearDown() throws Exception sessionFactory=null; super.tearDown(); (4)執(zhí)行該TestCase類-右擊該測(cè)試用例類,并選擇執(zhí)行的方式為JUnit測(cè)試(5)將出現(xiàn)下面的結(jié)果(6)同時(shí)在控制臺(tái)中出現(xiàn)下面的狀態(tài)提示如果出現(xiàn)錯(cuò)誤,將出現(xiàn)下面的提示,比如將UserInfoPO.hbm.xml中的類名稱故意寫(xiě)錯(cuò)誤<class name="com.px1987.webbbs.dao.UserInfoPO2" table="UserInfo">,將出現(xiàn)下面的錯(cuò)誤提示楊教授大學(xué)堂,版權(quán)所有,盜版必究。 28/28頁(yè)

注意事項(xiàng)

本文(基于J2EE Struts框架的課程設(shè)計(jì)實(shí)訓(xùn)項(xiàng)目——BBS論壇系統(tǒng)——構(gòu)造基于Hibernate框架的持久層組件并測(cè)試對(duì)應(yīng)的實(shí)體映射配置)為本站會(huì)員(仙***)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!