tp05使用分層實(shí)現(xiàn)業(yè)務(wù)處理_第1頁
tp05使用分層實(shí)現(xiàn)業(yè)務(wù)處理_第2頁
tp05使用分層實(shí)現(xiàn)業(yè)務(wù)處理_第3頁
tp05使用分層實(shí)現(xiàn)業(yè)務(wù)處理_第4頁
tp05使用分層實(shí)現(xiàn)業(yè)務(wù)處理_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余36頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、使用分層實(shí)現(xiàn)業(yè)務(wù)處理第五章回顧與作業(yè)點(diǎn)評(píng)使用哪個(gè)內(nèi)置對(duì)象可以實(shí)現(xiàn)訪問本網(wǎng)站的人數(shù)統(tǒng)計(jì)?簡述session和cookie的應(yīng)用場合提問2/433預(yù)習(xí)檢查什么是連接池?為什么要使用連接池?在分層模式中,三層指的是哪三層?提問3/43本章任務(wù)實(shí)現(xiàn)所有的Web應(yīng)用程序共用Tomcat中發(fā)布的一條信息使用JNDI查找新聞發(fā)布系統(tǒng)數(shù)據(jù)源使用三層實(shí)現(xiàn)刪除新聞主題、刪除新聞和單條新聞顯示的功能4/43本章目標(biāo)熟練應(yīng)用JNDI查找數(shù)據(jù)源掌握數(shù)據(jù)庫連接池原理熟練應(yīng)用分層架構(gòu)開發(fā)應(yīng)用系統(tǒng)5/436為什么使用JNDI如何實(shí)現(xiàn)在Tomcat中發(fā)布一條信息供所有的Web應(yīng)用程序使用?類似于全局變量 Application

2、但Application只用于本W(wǎng)eb應(yīng)用程序共享數(shù)據(jù)問題分析6/437JNDI介紹什么是JNDIJava Naming and Directory Interface,Java命名和目錄接口通過名稱將資源與服務(wù)進(jìn)行關(guān)聯(lián)7/438JNDI的簡單應(yīng)用應(yīng)用步驟發(fā)布信息:修改Tomcatconfcontext.xml文件獲取資源:使用lookup()進(jìn)行查找 /javax.naming.Context提供了查找JNDI 的接口Context ctx = new InitialContext(); p/env/為前綴String testjndi = (String)ctx.lookup( p/env

3、/tjndi);out.println(JNDI: +testjndi);初始化Context對(duì)象調(diào)用lookup()方法JNDI查找的名稱演示示例1:JNDI的簡單應(yīng)用8/439學(xué)員操作使用JNDI訓(xùn)練要點(diǎn)使用JNDI需求說明在Tomcat中發(fā)布一條信息供所有的Web應(yīng)用程序使用練習(xí)完成時(shí)間:15分鐘9/43共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調(diào)試技巧共性問題集中講解10/43為什么使用連接池傳統(tǒng)數(shù)據(jù)庫連接方式的不足需要經(jīng)常與數(shù)據(jù)庫建立連接在訪問結(jié)束后必須要關(guān)閉連接釋放資源當(dāng)并發(fā)訪問數(shù)量較大時(shí),網(wǎng)站速度收到極大影響系統(tǒng)的安全性和穩(wěn)定性相對(duì)較差請(qǐng)求響應(yīng)操作(打開連接)結(jié)果(關(guān)閉連接)

4、多次重復(fù)操作11/4312生活中的連接池普通電話 -建立連接,等待回應(yīng)熱線電話 -已建立連接連接已連接開始通話開始通話已連接,直接通話連接中已連接,直接通話12/4313連接池技術(shù)工作原理連接池中的連接應(yīng)用程序從連接池中獲得連接連接池是由容器提供的,用來管理池中連接對(duì)象Connection1Connection2Connection3請(qǐng)求響應(yīng)13/4314數(shù)據(jù)源簡介2-1數(shù)據(jù)源(DataSource)javax.sql.DataSource負(fù)責(zé)建立與數(shù)據(jù)庫的連接從Tomcat的數(shù)據(jù)源獲得連接把連接保存在連接池中Connection1Connection2Connection3請(qǐng)求響應(yīng)連接池中的

5、連接對(duì)象是由誰創(chuàng)建的呢?14/43數(shù)據(jù)源簡介2-2如何獲得DataSource對(duì)象數(shù)據(jù)源由Tomcat提供使用JNDI獲得DataSource引用應(yīng)用程序jdbc/s1jdbc/s2數(shù)據(jù)源數(shù)據(jù)源名稱Connectioncontext.lookup( jdbc/s1 )15/43訪問數(shù)據(jù)源4-1使用連接池實(shí)現(xiàn)數(shù)據(jù)庫連接配置context.xml文件配置context.xml文件配置web.xml文件添加數(shù)據(jù)庫驅(qū)動(dòng)文件進(jìn)行代碼編寫,實(shí)現(xiàn)查找數(shù)據(jù)源16/43訪問數(shù)據(jù)源4-2Tomcat的conf/context.xml中的配置 屬性名稱說明name指定Resource的JNDI名稱auth指定管理R

6、esource的Managertype指定Resource所屬的Java類maxActive指定連接池中處于活動(dòng)狀態(tài)的數(shù)據(jù)庫連接的最大數(shù)目maxIdle指定連接池中處于空閑狀態(tài)的數(shù)據(jù)庫連接的最大數(shù)目maxWait指定連接池中的連接處于空閑的最長時(shí)間17/4318訪問數(shù)據(jù)源4-3添加數(shù)據(jù)庫驅(qū)動(dòng)文件把數(shù)據(jù)庫驅(qū)動(dòng)的.jar文件,加入到Tomcat的lib中應(yīng)用程序的web.xml文件的配置在web.xml中配置 jdbc/news javax.sql.DataSource Container 指定JNDI的名字,與元素中的name一致指定引用資源的類名,與元素中的type一致指定管理所引用資源的Ma

7、nager與元素中的auth一致演示示例2:使用連接池實(shí)現(xiàn)數(shù)據(jù)庫連接18/43import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.sql.DataSource;public class BaseDao public Connection getConnection () Context ctx; try ctx = new InitialContext();/獲取與邏輯名相關(guān)聯(lián)的數(shù)據(jù)源對(duì)象DataSource ds=(Dat

8、aSource)ctx.lookup( p/env/jdbc/news);conn=ds.getConnection(); catch (SQLException exception) exception.printStackTrace(); catch (NamingException namingException) namingException.printStackTrace(); 使用JNDI和數(shù)據(jù)源要導(dǎo)入的包分為兩部分java:comp/env為JavaEE默認(rèn)路徑j(luò)dbc/news為DataSource名 訪問數(shù)據(jù)源4-419/4320小結(jié)使用連接池實(shí)現(xiàn)數(shù)據(jù)庫連接配置contex

9、t.xml文件配置context.xml文件配置web.xml文件添加數(shù)據(jù)庫驅(qū)動(dòng)文件進(jìn)行代碼編寫,實(shí)現(xiàn)查找數(shù)據(jù)源Tomcat的conf文件夾下與context.xml指定的名稱一致加入到Tomcat的lib中l(wèi)ookup()參數(shù)的寫法20/4321學(xué)員操作使用連接池實(shí)現(xiàn)數(shù)據(jù)庫連接2-1訓(xùn)練要點(diǎn)連接池的配置通過JNDI查找數(shù)據(jù)源連接數(shù)據(jù)庫需求說明修改新聞發(fā)布系統(tǒng),通過JNDI查找數(shù)據(jù)源,實(shí)現(xiàn)數(shù)據(jù)庫的訪問講解需求說明指導(dǎo)21/43學(xué)員操作使用連接池實(shí)現(xiàn)數(shù)據(jù)庫連接2-2實(shí)現(xiàn)思路1. 配置/tomcat安裝目錄/conf/context.xml文件2. 配置/webRoot/WEB-INF/web.x

10、ml文件3. 在lib目錄中添加數(shù)據(jù)庫驅(qū)動(dòng)jar文件4. 在BaseDao中獲取數(shù)據(jù)連接方法中編寫代碼,實(shí)現(xiàn)查找數(shù)據(jù)源指導(dǎo)完成時(shí)間:25分鐘22/43共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調(diào)試技巧共性問題集中講解23/4324為什么需要分層JSP開發(fā)時(shí)分兩層的弊端V1.0查找刪除V2.0刪除V3.0查找刪除 隨著業(yè)務(wù)的改變,數(shù)據(jù)訪問層要不斷的修改代碼24/4325三層模式三層模式的劃分查找刪除 隨著業(yè)務(wù)的改變,只需修改調(diào)用哪個(gè)方法即可 數(shù)據(jù)訪問層的方法不變25/4326層與層之間的關(guān)系表示層依賴于業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層依賴于數(shù)據(jù)訪問層 26/4327分層的實(shí)現(xiàn)如果使用分層實(shí)現(xiàn)刪除新聞主題

11、,該如何實(shí)現(xiàn)呢?問題分析實(shí)體類 業(yè)務(wù)邏輯層 表示層 數(shù)據(jù)訪問層 27/4328分層實(shí)現(xiàn)刪除新聞主題編寫業(yè)務(wù)邏輯控制接口public interface TopicsBiz /獲取所有主題public List getAllTopics();/更新主題public int updateTopic(Map topic);/根據(jù)名字查找主題public Topic findTopicByName(String name);/添加主題public int addTopic(String name);/通過tid刪除主題public int deleteTopic(String tid);28/43分層

12、實(shí)現(xiàn)刪除新聞主題編寫業(yè)務(wù)邏輯控制接口的實(shí)現(xiàn)public class TopicsBizImpl implements TopicsBiz /省略其他方法實(shí)現(xiàn) public int deleteTopic(String tid) NewsDao newsDao=new NewsDaoImpl();TopicsDao topicsDao=new TopicsDaoImpl();/判斷特定主題下是否有文章if(newsDao.getAllnewsByTID(Integer.valueOf(tid).size()0) return 1; /成功刪除主題 else return -1; /刪除主題失敗

13、elsereturn 0; /該主題下還有文章 29/43分層實(shí)現(xiàn)刪除新聞主題修改控制頁面 alert(已經(jīng)成功刪除主題,點(diǎn)擊確認(rèn)返回原來頁面); location.href=topic_ control.jsp?opr=list;演示示例3:使用三層修改刪除新聞主題30/4331學(xué)員操作使用三層架構(gòu)修改刪除新聞主題2-1訓(xùn)練要點(diǎn)使用三層構(gòu)架需求說明修改刪除新聞主題功能,使之符合三層構(gòu)架練習(xí)講解需求說明31/43學(xué)員操作使用三層架構(gòu)修改刪除新聞主題2-2實(shí)現(xiàn)思路1. 編寫業(yè)務(wù)邏輯控制接口2. 編寫實(shí)現(xiàn)業(yè)務(wù)邏輯控制接口的類3. 修改控制頁面指導(dǎo)完成時(shí)間:25分鐘32/43共性問題集中講解常見問題

14、及解決辦法代碼規(guī)范問題調(diào)試技巧共性問題集中講解33/43分層原則上層依賴其下層,依賴關(guān)系不跨層 表示層不能直接訪問數(shù)據(jù)訪問層上層調(diào)用下層的結(jié)果,取決于下層的實(shí)現(xiàn)下一層不能調(diào)用上一層 下一層不依賴上一層上層的改變不會(huì)影響下一層下層的改變會(huì)影響上一層得到的結(jié)果在上一層中不能出現(xiàn)下一層的概念 分工明確,各司其職34/43小結(jié)分層開發(fā)的優(yōu)勢職責(zé)清晰 無損替換 降低了依賴程度 復(fù)用代碼 35/43學(xué)員操作使用三層架構(gòu)修改刪除新聞功能需求說明使用三層架構(gòu)刪除某一條新聞刪除新聞時(shí)將有關(guān)這條新聞的所有評(píng)論一同刪除練習(xí)提示完成時(shí)間:20分鐘36/43共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調(diào)試技巧共性問題集中講解37/43學(xué)員操作使用三層架構(gòu)修改單條新聞顯示需求說明修改單條新聞顯示,使之符合三層構(gòu)架練習(xí)完成時(shí)間:20分鐘38/43共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調(diào)試技巧共性問題集中講解39/43總結(jié)2-1JNDI的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論