




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架(一2008-09-22 15:12:19 查看( 2015 / 評(píng)論( 1 中加入了,Struts,Hibernate的支持,可以滿足現(xiàn)在大部分企業(yè)應(yīng)用SSH框架的開(kāi)發(fā)需求。本文將用一個(gè)簡(jiǎn)單的登陸例子來(lái)介紹如何在中使用SSH框架進(jìn)行企業(yè)級(jí)開(kāi)發(fā)。本節(jié)介紹示例的準(zhǔn)備工作、OR映射以及相關(guān)配置的方法。下一節(jié)則介紹頁(yè)面層和框架整合的關(guān)鍵技術(shù)。軟件需求:,下載并安裝,支持以及庫(kù)文件的插件3、MySQL 5數(shù)據(jù)庫(kù)及JDBC驅(qū)動(dòng)4、Struts+Spring整合方案庫(kù) JDBC驅(qū)動(dòng)和整合庫(kù)在這里。實(shí)驗(yàn)步驟:1、1、在My
2、SQL中建立數(shù)據(jù)庫(kù)sshdemo,執(zhí)行以下腳本:SET FOREIGN_KEY_CHECKS=0;- - Table structure for user- -CREATE TABLE user (userId bigint(20 NOT NULL auto_increment,userName varchar(20 NOT NULL,password varchar(30 NOT NULL,PRIMARY KEY(userIdENGINE=InnoDB DEFAULT CHARSET=utf8;- - Records- -INSERT INTO user VALUES (1, mg, 123
3、;2、2、在Netbeans6.1中建立Web工程,在選擇框架時(shí)選擇Spring Web MVC2.5及Struts2.0和Hibernate,命名為SSHDemo,如下圖所示:點(diǎn)擊工程右鍵-屬性-庫(kù)-添加Jar文件,加入ssh_lib.zip包中的兩個(gè)包。3、3、在源包中新建包po,dao,service,action四個(gè)包,分別用來(lái)放置ORM映射、數(shù)據(jù)庫(kù)操作、業(yè)務(wù)邏輯以及Struts的Action。4、4、建立Model,在po包中新建類User,代碼如下:public class User private String name;private long id;private Strin
4、g password;單擊右鍵,選擇“重構(gòu)”-“封裝字段”,選擇所有字段進(jìn)行封裝,生成get和set方法。5、5、建立Model和數(shù)據(jù)庫(kù)的映射。生成在源包中右鍵單擊po包,新建-其他-Hibernate-Hibernate Configuration File,如下圖所示:點(diǎn)擊下一步,命名為hibernate1.cfg,點(diǎn)擊下一步,在database connection中把下拉框拉到最下面,點(diǎn)擊“新建數(shù)據(jù)庫(kù)連接”,如下圖所示:注意用戶名和密碼可以自己指定。最后點(diǎn)擊完成,在源包的缺省包中就會(huì)生成的Hibernate配置文件: org.hibernate.dialect.MySQLDialect
5、 com.mysql.jdbc.Driver jdbc:mysql:/localhost:3306/sshdemo root root 在po包中點(diǎn)擊右鍵,選擇新建-其他-Hibernate-Hibernate Mapping File,命名為user.hbm,如下配置:點(diǎn)擊完成,生成user.hbm.xml,加入映射關(guān)系如下: 6、6、在Spring IoC容器中定義Hibernate的SessionFactory。打開(kāi)Web頁(yè)- WEB-INF applicationContext.xml,首先加入數(shù)據(jù)源的定義: 然后加入Hibernate的SessionFactory的定義: po/us
6、er.hbm.xml hibernate.dialect=org.hibernate.dialect.MySQLDialect Spring的配置文件有強(qiáng)大的提示功能:7、7、建立Dao接口及實(shí)現(xiàn)。在dao包中建立接口UserDao,代碼如下:public interface UserDao void save(User user throws Exception;User getUser(long userId;User getUser(String userName;建立實(shí)現(xiàn)類UserDaoImpl,代碼如下:package dao;import org.springframework.o
7、rm.hibernate3.support.HibernateDaoSupport;import po.User;/* author Administrator*/public class UserDaoImpl extends HibernateDaoSupport implements UserDaopublic void save(User user throws ExceptiontrygetHibernateTemplate(.save(user;catch(Exception errthrow err;public User getUser(long userIdreturn (U
8、sergetHibernateTemplate(.get(User.class, userId;public User getUser(String userName return (UsergetHibernateTemplate(.find(from User as u where = ?, userName.get(0;該類繼承于,以方便地使用getHibernateTemplate(獲得Hibernate支持。如getUser方法,可以用getHibernateTemplate(方法獲得工廠對(duì)象sessionFactory,調(diào)用find方法可以通過(guò)HQL語(yǔ)句來(lái)查找對(duì)象,而
9、不必再編寫(xiě)復(fù)雜的SQL語(yǔ)句。對(duì)實(shí)體的其他操作入插入操作則只需調(diào)用save方法。由于Dao類必須調(diào)用sessionFactory,因此必須通過(guò)Spring IoC容器為Dao類注入sessionFactory。在applicationContext.xml中添加以下配置: 至此,OR映射工作完成。下一節(jié)將介紹頁(yè)面層技術(shù),包括國(guó)際化方案。在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架(二2008-09-22 15:13:34 查看( 1756 / 評(píng)論( 1 上一篇文章介紹了在中使用SSH框架的準(zhǔn)備工作及OR映射的方法,這篇文章則繼續(xù)介紹如何構(gòu)建視圖層和業(yè)務(wù)
10、邏輯層以及在此過(guò)程中整合Struts和Spring框架。1、建立業(yè)務(wù)邏輯。在service包中創(chuàng)建業(yè)務(wù)接口UserService,代碼如下:package service;import dao.UserDaoImpl;import po.User;/* author Administrator*/public interface UserServive void addUser(String userName, String password, int admin throws Exception; User getUser(long userId; User getUser(String u
11、serName; void setUserDao(UserDaoImpl userDao;創(chuàng)建實(shí)現(xiàn)類UserServiceImp,代碼如下:package service;import po.User;/* author Administrator*/public class UserServiceImpl implements UserServive private dao.UserDao userDao; public void addUser(String userName, String password, int admin throws Exception po.User user
12、 = new User(; /user.setId(10; user.setAdmin(admin; user.setName(userName; user.setPassword(password; try userDao.save(user; catch(Exception err throw err; public User getUser(long userId return userDao.getUser(userId; public void setUserDao(dao.UserDaoImpl userDao this.userDao = userDao; public User
13、 getUser(String userName return this.userDao.getUser(userName; 注意紅色部分代碼,為了訪問(wèn)數(shù)據(jù)庫(kù),必須引入userDao的對(duì)象,生成set的方法,并通過(guò)Spring IoC容器注入該屬性,在中增加以下配置: userDao的配置已經(jīng)在上一篇文章描述過(guò),引用的是以下這段配置: service的方法就是通過(guò)調(diào)用dao的實(shí)體方法來(lái)操作的,如上面代碼第二段紅色的部分。2、建立視圖。在web頁(yè)面的example目錄下新建JSP頁(yè)面,命名為L(zhǎng)ogin。在文件頭部添加的標(biāo)簽引入:在網(wǎng)頁(yè)body標(biāo)簽中加入以下代碼: 的標(biāo)簽庫(kù)功能很強(qiáng)大,網(wǎng)上有很多例
14、程,在這里就不詳述了。關(guān)鍵的地方是lable屬性里面的表達(dá)式,在這里,是為了國(guó)際化而設(shè)的。要在中使用i18N,我們首先要在源包-缺省包中新建一個(gè)屬性文件(點(diǎn)擊新建-其他-屬性文件),命名為struts。在中添加定義:struts.custom.i18n.resources=globalMessages這條語(yǔ)句指定資源文件的前綴,例如中文的資源文件可以命名為globalMessages_zh_CN,英文的可以命名為globalMessages_en_US。我們?cè)谌笔“蟹謩e創(chuàng)建這兩個(gè)屬性文件。在中文的資源文件中加入以下:username=用戶名password=密碼submit=提交英文的資源文
15、件加入:username=Usernamepassword=Passwordsubmit=Submit然后就可以在JSP頁(yè)面中用%getText(username的表達(dá)式來(lái)指定要讀出的字符串了。在中,我們不必再手動(dòng)地把中文轉(zhuǎn)換為Unicode碼,框架會(huì)自動(dòng)轉(zhuǎn)換。3、創(chuàng)建Action。在action包中點(diǎn)擊右鍵-新建-其他-Struts2-Struts2 Action,命名為L(zhǎng)oginAction。中不再需要?jiǎng)?chuàng)建ActionForm,只要生成屬性的get和set方法,就能夠獲取到頁(yè)面標(biāo)簽name屬性對(duì)應(yīng)的值。在這里,LoginAction繼承。代碼如下:package action;import
16、 com.opensymphony.xwork2.ActionSupport;import java.util.Locale;import org.springframework.context.support.ResourceBundleMessageSource;import po.User;import service.UserServiceImpl;/* author mg*/public class LoginAction extends ActionSupport private UserServiceImpl userService; private String message
17、; private String username; private String password; private ResourceBundleMessageSource messageSource; public LoginAction( Override public String execute( throws Exception User usr = userService.getUser(username; if(usr != null if(usr.getPassword(.equals(password message = messageSource.getMessage(l
18、oginSuccess, null,Locale.CHINA; else message = messageSource.getMessage(pswError, null,Locale.CHINA; else message = messageSource.getMessage(usrError, null,Locale.CHINA; return SUCCESS; public void setUserService(UserServiceImpl userService this.userService = userService; public String getMessage( r
19、eturn message; public void setMessage(String message this.message = message; public String getUsername( return username; public void setUsername(String username this.username = username; public String getPassword( return password; public void setPassword(String password this.password = password; public void setMessageSource(ResourceBundleMessageSource messageSource this.messageSource = messageSource; 注意紅色代碼的屬性。其中ResourceBundleMessageSource是中處理國(guó)際化信息的類,UserServiceImp是操作User實(shí)體的業(yè)務(wù)邏輯類。這兩個(gè)類的實(shí)例都是通過(guò)Spring IoC容器管理和注入的。因此,必須在中添加配置: value=messages / 在缺省包中添加屬性文件,注意文件名要以messageSource的bean
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025大學(xué)生會(huì)計(jì)專業(yè)財(cái)務(wù)管理分析
- 2025年康復(fù)科護(hù)理保險(xiǎn)政策研究計(jì)劃
- 家庭經(jīng)濟(jì)困難學(xué)生心理關(guān)懷措施
- 品牌在全球化背景下的定位策略
- 幼兒園音樂(lè)與舞蹈教育活動(dòng)計(jì)劃
- 項(xiàng)目投標(biāo)結(jié)果通知回函范文
- 七年級(jí)英語(yǔ)興趣小組計(jì)劃
- 房地產(chǎn)項(xiàng)目管理部崗位職責(zé)說(shuō)明
- 建筑工程投標(biāo)違約承諾書(shū)范文
- 物業(yè)管理數(shù)字化轉(zhuǎn)型措施分析
- 物理-重慶市南開(kāi)中學(xué)高2025屆高三第七次質(zhì)量檢測(cè)暨3月月考試題和答案
- 2025屆高考地理二輪復(fù)習(xí)高考非選擇題專練專練八以世界典型區(qū)域?yàn)楸尘暗木C合題含解析
- 2025年單位節(jié)日集體福利慰問(wèn)品采購(gòu)合同8篇
- 大學(xué)生網(wǎng)絡(luò)安全與道德規(guī)范管理指南
- 2025屆泉州市高三語(yǔ)文三檢作文題目解析及相關(guān)范文:光靠理性還不足以解決我們社會(huì)生活的問(wèn)題
- 第16課《大家排好隊(duì)》名師課件
- 湖北咸寧咸安區(qū)招引碩士、博士研究生人才41人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2024江西撫州市市屬國(guó)有企業(yè)招聘員工入闈人員筆試參考題庫(kù)附帶答案詳解
- T-CWEC 37-2023 著生藻類監(jiān)測(cè)技術(shù)規(guī)范
- 1、工貿(mào)行業(yè)重大事故隱患重點(diǎn)排查事項(xiàng)清單
- 2025年紀(jì)檢工作要點(diǎn)
評(píng)論
0/150
提交評(píng)論