《基于J2EE Struts框架的課程設(shè)計(jì)實(shí)訓(xùn)項(xiàng)目——BBS論壇系統(tǒng)——構(gòu)造基于Hibernate框架的持久層組件并測(cè)試對(duì)應(yīng)的實(shí)體映射配置》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于J2EE Struts框架的課程設(shè)計(jì)實(shí)訓(xùn)項(xiàng)目——BBS論壇系統(tǒng)——構(gòu)造基于Hibernate框架的持久層組件并測(cè)試對(duì)應(yīng)的實(shí)體映射配置(28頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、楊教授大學(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框架的開發(fā)環(huán)境
1、hibernate3.3的系統(tǒng)包文件的結(jié)構(gòu)與前面的各個(gè)版本的文件結(jié)構(gòu)發(fā)生了變化。
2、將Hibernate的庫文件放到Web應(yīng)用的/WEB-INF/lib目錄中----針對(duì)Hibernate3.2以前的版本
(1)下載Hibernate的系統(tǒng)并解壓縮包
然后將下面的各個(gè)*.lib庫文件(總共10文件)在Eclipse中導(dǎo)入放到W
2、eb應(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的庫文件放到Web應(yīng)用的/WEB-INF/lib目錄中----針對(duì)Hibernate3.3版本
3、
(1)下載Hibernate3.3的系統(tǒng)并解壓縮包
(2)下載SLF4J (http://www.slf4j.org/download.html)
(3)然后將下面的各個(gè)*.lib庫文件(總共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、ehca
4、che.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ù)庫及JDBC驅(qū)動(dòng)程序)
5、uration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "
org.hibernate.dialect.MySQLDialect
com.mysql.jdbc.Driver
6、 jdbc:mysql://localhost:3306/bbsdatabase
root
root
org.hiber
7、nate.connection.C3P0ConnectionProvider
2
2
500
100
3000
2
false
true
true
9、org.hibernate.cache.EhCacheProvider
debug
注意:
在開發(fā)中為了簡化采用了Hibernate中所內(nèi)帶的C3P0的數(shù)據(jù)庫連接池方式,在項(xiàng)目的最后進(jìn)行集成時(shí)再根據(jù)應(yīng)用的需要改變?yōu)椴捎闷渌问降臄?shù)據(jù)庫連接池方式。
<
14、/bean>
(3)可以在MyEclipse的Hibernate的可視化向?qū)е羞M(jìn)行對(duì)hibernate.cfg.xml的配置
5、配置log4j.properties屬性文件
在應(yīng)用系統(tǒng)運(yùn)行過程中,可以觀察Hibernate的提示內(nèi)容。但如果在系統(tǒng)中已經(jīng)添加了,就可以不再需要重復(fù)地添加。
運(yùn)行過程中將產(chǎn)生出下面的日志文件
1.1.2 映射BBS數(shù)據(jù)訪問層中的各個(gè)實(shí)體PO類
1、映射UserInfoPO類與UserInfo數(shù)據(jù)庫表中的各個(gè)字段
(1)在Eclipse開發(fā)工具中增加一個(gè)UserInfoPO.hbm.xml文件
(2)內(nèi)容如下
15、ion="1.0"?>
16、name="userID" not-null="true" />
17、 />
18、
(3)保證在hibernate.cfg.xml文件中添加對(duì)UserInfoPO.hbm.xml的引用定義
2、映射前面的AdminUserInfoPO數(shù)據(jù)庫表中的各個(gè)字段
(1)增加一個(gè)AdminUserInfoPO.hbm.xml文件
(2)內(nèi)容如下
21、C "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"
22、
23、
<
24、property name="studyHistory" />
(3)保證在hibernate.cfg.xml文件中添加對(duì)AdminUserInfoPO.hbm.xml的引用定義
3、映射前面的BBSInfoPO.hbm.xml數(shù)據(jù)庫表中的各個(gè)字段
(1)增加一個(gè)BBSInfoPO.h
25、bm.xml文件
(2)內(nèi)容如下
26、="bbsID" not-null="true" />
29、de="all">
(3)保證在hibernate.cfg.xml文件中添加對(duì)BBSInfoPO.hbm.xml的引用定義
4、映射前面的BBSTitleInfoPO.hbm.xml數(shù)
30、據(jù)庫表中的各個(gè)字段
(1)增加一個(gè)BBSTitleInfoPO.hbm.xml文件
(2)內(nèi)容如下
31、d name="bbsTitleID" type="java.lang.Integer" >
(3)保證在hibernate.cfg.xml文件中添加對(duì)BBSTitleInfoPO.hbm.xml的引用定義
5、映射前面的
34、BBSReplyInfoPO.hbm.xml數(shù)據(jù)庫表中的各個(gè)字段
(1)增加一個(gè)BBSReplyInfoPO.hbm.xml文件
(2)內(nèi)容如下
35、="id" type="java.lang.Integer" >
(3)保證在hibernate.cfg.xml文件中添加對(duì)BBSReplyInfoPO.hbm.xml的引用定義
6、映射前面的RoleInfoPO.hbm.xml數(shù)據(jù)庫表中的各個(gè)
38、字段
(1)增加一個(gè)RoleInfoPO.hbm.xml文件
(2)內(nèi)容如下
39、
40、
(3)保證在hibernate.cfg.xml文件中添加對(duì)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文件
41、
2) 基于hibernate的DAO組件中的各個(gè)數(shù)據(jù)訪問功能的方法進(jìn)行測(cè)試。
目前只對(duì)“對(duì)其hibernate.cfg.xml文件以及各個(gè) O/R Mapping 的*.xml文件”進(jìn)行測(cè)試。
(2)在測(cè)試用例類中利用Configuration類中的configure()方法來定位被測(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)類名稱為Test
42、HibernateXML,包名稱為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 ex
43、tends 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(fi
44、le);
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中的類名稱故意寫錯(cuò)誤
,將出現(xiàn)下面的錯(cuò)誤提示
楊教授大學(xué)堂,版權(quán)所有,盜版必究。 28/28頁