freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[計(jì)算機(jī)軟件及應(yīng)用]ssh框架(編輯修改稿)

2024-09-13 04:05 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 20. } 121. } 122. 123. publicvoidattachClean(Table1instance){ 124. (attachingcleanTable1instance)。 125. try{ 126. getHibernateTemplate().lock(instance,)。 127. (attachsuccessful)。 128. }catch(RuntimeExceptionre){ 129. (attachfailed,re)。 130. throwre。 131. } 132. } 133. 134. publicstaticTable1DAOgetFromApplicationContext(ApplicationContextctx){ 135. return(Table1DAO)(Table1DAO)。 136. } 137. }從DAO類中可以看到自動(dòng)生成了基本CURD操作的代碼,類是繼承自Spring封裝Hibernate的操作類:public class Table1DAO extends HibernateDaoSupport。HibernateDaoSupport提供了基于AOP事務(wù)的自動(dòng)處理,程序員完全可以不用理會(huì)事務(wù)的開始與提交。在JDBC中一個(gè)Connection對(duì)象使用一個(gè)事務(wù),那么在Hibernate中一個(gè)事務(wù)肯定要關(guān)聯(lián)一個(gè)SessionFactory了,然而這個(gè)SessionFactory卻沒有在DAO中體現(xiàn)。其實(shí)主要的原因是HibernateDaoSupport類已經(jīng)默默地做了封裝的工作,它用一個(gè)setSessionFactory方法將SessionFactory進(jìn)行注入,所以繼承自HibernateDaoSupport類的DAO都會(huì)具有SessionFactory的屬性,從而可以通過SessionFactory創(chuàng)建Session實(shí)例操作數(shù)據(jù)庫(kù),如圖1513所示。(點(diǎn)擊查看大圖)圖1513 HibernateDaoSupport類的結(jié)構(gòu)雖然有set方法,但在哪注入的呢?。打開這個(gè)配置文件后,可以看到如下代碼:1. ?xmlversion=encoding=UTF8? 2. beansxmlns=3. xmlns:xsi=4. xsi:schemaLocation= 5. 6. 7. 8. beanid=sessionFactory9. class= 10. propertyname=configLocation11. value=classpath: 12. /property 13. /bean 14. beanid=Table1DAOclass= 15. //將refbean=sessionFactory注入到Table1DAOr的property 16. //name=sessionFactory屬性中 17. propertyname=sessionFactory 18. refbean=sessionFactory/ 19. /property 20. /bean 21. /beansMyEclipse工具自動(dòng)將創(chuàng)建的DAO注入了sessionFactory的對(duì)象,所以DAO對(duì)象就具有了通過Hibernate操作數(shù)據(jù)庫(kù)的功能。11. 創(chuàng)建All_DAO對(duì)象本示例是使用分層的結(jié)構(gòu),在service服務(wù)層有可能需要使用到某些DAO(當(dāng)然本示例只有一個(gè)DAO),所以要想辦法將這些零散的DAO集中起來,以供某一個(gè)service類進(jìn)行調(diào)用。根據(jù)本示例的結(jié)構(gòu),創(chuàng)建All_DAO類,并且在All_DAO類中添加屬性table1dao,這里一定要注意,屬性的名稱一定要小寫,因?yàn)镾pring對(duì)屬性名稱有自己的認(rèn)知性,小寫不會(huì)出現(xiàn)錯(cuò)誤,并且生成get和set方法,如圖1514所示。(點(diǎn)擊查看大圖)圖1514 生成get和set方法生成后的代碼如下:1. packageorm。 2. 3. publicclassAll_DAO{ 4. 5. Table1DAOtable1dao。 6. //聲明Table1DAO類的變量table1dao,All_DAO就相當(dāng)于一個(gè)手袋一樣 7. //把所有的dao封裝進(jìn)這個(gè)All_DAO中 8. 9. publicTable1DAOgetTable1dao(){//get方法 10. returntable1dao。 11. } 12. 13. publicvoidsetTable1dao(Table1DAOtable1dao){//set方法 14. =table1dao。 15. } 16. 17. }12. 創(chuàng)建Table1_Service服務(wù)對(duì)象創(chuàng)建Table1DAO的service服務(wù)對(duì)象Table1_Service,并且把這個(gè)服務(wù)對(duì)象放入到service包中,所以還需要新建一個(gè)service包。由于Table1_Service服務(wù)類會(huì)使用到很多的DAO,所以在服務(wù)類中聲明一個(gè)All_DAO類的對(duì)象,這樣就可以在一個(gè)服務(wù)類中使用全部的DAO了,具有很強(qiáng)的靈活性。手動(dòng)創(chuàng)建的代碼如下:1. packageservice。 2. 3. import 4. 5. import 6. 7. publicclassTable1_Service{ 8. 9. All_DAOall_dao。//聲明All_DAO類的實(shí)例變量all_dao 10. 11. publicvoidsetAll_dao(All_DAOall_dao){//set方法 12. =all_dao。 13. } 14. 15. publicListget_table1_all(){//取得表中所有數(shù)據(jù)的方法 16. 17. return().findAll()。 18. 19. } 20. 21. }在服務(wù)類中創(chuàng)建了一個(gè)get_table1_all方法,用于獲取table_1表中的所有數(shù)據(jù)。13. 創(chuàng)建All_Service服務(wù)對(duì)象創(chuàng)建All_Service服務(wù)對(duì)象的目的是將所有的服務(wù)對(duì)象集中管理,這樣在控制層Action調(diào)用時(shí)只需要調(diào)用All_Service對(duì)象,就可以調(diào)用所有的服務(wù)了,而那些服務(wù)又可以調(diào)用所有的DAO,軟件模塊之間數(shù)據(jù)的流動(dòng)性大大增強(qiáng)。手動(dòng)創(chuàng)建的代碼如下:1. packageservice。 2. 3. publicclassAll_Service{ 4. //All_Service又相當(dāng)于一個(gè)手袋一樣,將所有的自定義的Service類進(jìn)行封裝 5. //以便Struts的Action對(duì)象調(diào)用。 6. Table1_Servicetable1_service。//創(chuàng)建Table1_Service類的變量table1_service 7. 8. publicTable1_ServicegetTable1_service(){//get方法 9. returntable1_service。 10. } 11. 12. publicvoidsetTable1_service(Table1_Servicetable1_service){//set方法 13. =table1_service。 14. } 15. 16. }到此已經(jīng)將All_DAO、Table1_Service和All_Service對(duì)象創(chuàng)建完成了,當(dāng)然這還是不夠的,還必須將這些類注冊(cè)到Spring的IOC容器中。14. :1. ?xmlversion=encoding=UTF8? 2. beansxmlns=3. xmlns:xsi=4. xsi:schemaLocation= 5. 6. 7. //聲明一個(gè)類型為L(zhǎng)ocalSessionFactoryBean的變量beanid=sessionFactory 8. beanid=sessionFactory9. class= 10. propertyname=configLocation11. value=classpath: 12. /property 13. /bean 14. //:refbean=sessionFactory 15. beanid=Table1DAOclass= 16. propertyname=sessionFactory 17. refbean=sessionFactory/ 18. /property 19. /bean 20. //對(duì)All_DAO中的屬性table1dao進(jìn)行注入:ref=Table1DAO 21. 22. beanid=all_daoclass= 23. propertyname=table1daoref=Table1DAO/property 24. /bean 25. //:ref=all_dao 26. beanid=table1_serviceclass= 27. propertyname=all_daoref=all_dao/property 28. /bean 29. //將這些零散的服務(wù)Service類注入到All_Service類中 30. beanid=all_serviceclass= 31. propertyname=table1_serviceref=table1_service/property 32. /bean 33. 34. /beans在配置文件中一層一層地注入,目的就是讓All_Service類使用完全的數(shù)據(jù)庫(kù)操作功能,這樣在軟件項(xiàng)目的開發(fā)中,程序員只需要關(guān)注自定義的DAO和服務(wù)類的創(chuàng)建,Struts的Action對(duì)象不需要大面積的更改。15. 新建自定義Action的父類base創(chuàng)建自定義Action的父類base的目的是在base中定義一個(gè)all_service的對(duì)象,這樣所有繼承自這個(gè)base的Action都可以自動(dòng)地使用all_service了,這樣就可以進(jìn)行數(shù)據(jù)庫(kù)的操作,不用在每一個(gè)Action中都定義一個(gè)all_service對(duì)象,方便使用。新建一個(gè)Struts ,如圖1515所示。(點(diǎn)擊查看大圖)圖1515 新建一個(gè)base的action單擊Finish按鈕完成創(chuàng)建。更改后的base的Action代碼如下:1. package 2. 3. import 4. 5. import 6. 7. publicclassBaseActionextendsAction{ 8. 9. All_Serviceall_service。//聲明一個(gè)All_Service類的對(duì)象all_service 10. 11. publicAll_ServicegetAll_service(){//get方法 12. returnall_service。 13. } 14. 15. publicvoidsetAll_service(All_Serviceall_service){//set方法 16. =all_service。 17. } 18. 19. }16. 新建一個(gè)添加table_1
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1