版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二章使用JDBC和JavaBean操作數據庫第二單元第1頁/共38頁本章相關學習資源《使用JDBC操作數據庫》專題《使用JavaBean封裝數據》專題《使用JSP/Servlet技術開發(fā)新聞發(fā)布系統(tǒng)》第2章《使用JDBC和JavaBean操作數據庫》第2頁/共38頁學習平臺“Java
Web開發(fā)技術”課程學生用書預習檢查使用JDBC技術如何實現數據庫的訪問?為什么連接池技術可以提高數據庫訪問效率?在JSP中如何實現頁面的復用?第3頁/共38頁提問本章任務任務1:使用JDBC讀取個人通訊錄任務2:使用配置文件保存數據庫信息任務3:實現對個人通訊錄的編輯任務4:使用數據源和連接池優(yōu)化數據庫訪問任務5:使用JSP標簽顯示個人通訊錄第4頁/共38頁理解JDBC的工作原理能夠使用數據源和連接池優(yōu)化數據庫訪問能夠使用JSP標簽優(yōu)化頁面代碼能夠使用JDBC操作數據庫能夠使用配置文件保存數據庫信息本章目標點重點難點重點難點重第5頁/共38頁串講:JDBC概述第6頁/共38頁提問在之前的程序中,數據都是預先寫好的,如何實現數據的動態(tài)變化?JDBCJava數據庫連接技術(JavaDataBaseConnectivity)應用程序數據庫服務器通過JDBC實現數據交互串講:JDBC的工作原理SqlServerJDBCAPIJDBCDriverManagerJDBC驅動Java應用程序OracleJDBC驅動JDBC的內容JDBCAPI定義了一系列的接口和類,集成在java.sql和javax.sql包中DriverManager管理各種不同的JDBC驅動JDBC驅動負責連接不同類型的數據庫第7頁/共38頁講解:JDBC訪問數據庫的步驟JDBC訪問數據庫步驟124獲取Connection連接DriverManager加載驅動創(chuàng)建Statement執(zhí)行SQL語句返回ResultSet查詢結果應用程序數據庫服務器3第8頁/共38頁串講:JDBC訪問數據庫的步驟加載驅動獲取數據庫連接Class.forName("JDBC驅動類名稱");第9頁/共38頁Connectionconn=DriverManager.getConnection(數據庫URL,數據庫用戶名,密碼)在加載驅動及獲取連接過程中,可能會出現異常,因此需要注意進行異常處理串講:JDBC訪問數據庫的步驟Statement對象通過Connection對象創(chuàng)建用于執(zhí)行SQL語句方法說明ResultSetexecuteQuery(Stringsql)執(zhí)行SQL查詢并獲取到ResultSet對象intexecuteUpdate(Stringsql)可以執(zhí)行插入、刪除、更新等操作,返回值是執(zhí)行該操作所影響的行數voidclose()關閉Statement對象Statementstmt=conn.createStatement();第10頁/共38頁語法串講:JDBC訪問數據庫的步驟ResultSet結果集用于存儲查詢結果只在執(zhí)行select語句時返回方法說明booleannext()將光標從當前位置向下移動一行voidclose()關閉ResultSet對象StringgetString(StringcolLabel)根據列名稱對應的值StringgetString(intcolIndex))根據列的位置獲取對應的值intgetInt(intcolIndex)根據列的位置獲取對應值intgetInt(StringcolLabel)根據列的名稱獲取對應的值第11頁/共38頁串講:JDBC訪問數據庫的步驟執(zhí)行SQL命令并處理結果…獲取數據庫連接代碼…Stringsql="select*fromnews_detail";//獲取Statement對象Statementstmt=connection.createStatement();//執(zhí)行SQL命令,返回查詢結果集ResultSetrs=stmt.executeQuery(sql);//從結果集中讀取數據while(rs.next()){intid=rs.getInt("id");Stringtitle=rs.getString("title");
…….}創(chuàng)建Statement對象執(zhí)行查詢,返回結果集ResultSet結果集只有在執(zhí)行查詢命令時才會被返回讀取數據第12頁/共38頁串講:JDBC訪問數據庫的步驟釋放資源try{if(rs!=null){ rs.close(); }if(stmt!=null){ stmt.close();}if(connection!=null){ connection.close();}}catch(SQLExceptione){e.printStackTrace();}釋放資源前要判斷資源是否為NULL,以免錯誤關閉引發(fā)異常演示示例:使用JDBC查詢新聞信息第13頁/共38頁上機練習需求說明使用JDBC實現個人通訊錄的訪問,在控制臺輸出聯系人信息數據表要求字段至少包括姓名、年齡、電話、聯系地址完成時間:30分鐘共性問題集中講解第14頁/共38頁練習講解:使用配置文件訪問數據庫配置文件以.properties為文件后綴以鍵值(key/value)的方式組織內容一次編寫,隨時調用driver=oracle.jdbc.driver.OracleDriverurl=jdbc:oracle:thin:@localhost:1521:newsusername=scottpassword=tiger perties鍵(key)=值(value)配置信息的編寫第15頁/共38頁講解:使用配置文件訪問數據庫Properties類讀取配置文件Properties類位于java.util包中,可以讀取以鍵值保存的數據演示示例:使用配置文件保存數據庫信息方法說明StringgetProperty(Stringkey)根據鍵名在屬性列表中查找對應的值voidload(InputStreaminStream)從輸入流中讀取屬性列表 StringconfigFile="perties"; properties=newProperties(); InputStreamin=ConfigManager.class.getClassLoader().getResourceAsStream(configFile); try{//讀取配置文件
properties.load(in); in.close();……}
//根據鍵(key)返回值(value) Stringdriver=properties.getProperty("driver")將配置信息以流方式讀取演示示例:使用配置文件保存數據庫信息使用load()加載輸入流根據屬性名稱獲取屬性值第16頁/共38頁上機練習需求說明在前次上機基礎上,使用配置文件實現個人通訊錄的訪問,并讀取信息在控制臺輸出顯示完成時間:10分鐘共性問題集中講解第17頁/共38頁練習小結JDBC訪問數據庫的步驟有哪些?使用配置文件優(yōu)化數據庫訪問的好處是什么?第18頁/共38頁提問串講:PreparedStatement概述PreparedStatement概述繼承自Statement接口能夠對SQL語句進行預編譯PreparedStatement的優(yōu)勢提高SQL語句執(zhí)行效率提高安全性Statement接口PreparedStatement接口第19頁/共38頁講解:PreparedStatement的應用PreparedStatement的應用SQL語句使用“?”作為數據占位符在創(chuàng)建時對SQL語句進行預編譯使用setXxx()方法設置數據Stringsql="insertintousers(name,age)values(?,?)";PreparedStatementps=conn.prepareStatement(sql); ps.setString(1,
"Jack");ps.setInt(2,20);ps.executeUpdate();演示示例:使用PreparedStatement操作數據庫占位符與字段數量保持一致對sql語句進行預編譯根據字段類型進行設置第20頁/共38頁上機練習需求說明使用PreparedStatement實現對個人通訊錄信息的編輯編寫公共類BaseDao及接口使用PreparedStatement實現數據編輯完成時間:30分鐘共性問題集中講解第21頁/共38頁練習串講:為什么使用連接池現在我們能夠使用JDBC訪問數據庫了,這種實現方式是否存在不足呢?分析訪問前需要先獲取連接每次操作結束后,要釋放資源頻繁的連接導致系統(tǒng)的安全性和穩(wěn)定性差使用連接池可以解決以上問題第22頁/共38頁問題生活中的連接池串講:連接池概述等待連接普通電話專線電話直接通話第23頁/共38頁串講:連接池的工作原理連接池的工作原理連接池是由容器提供的,用來管理池中連接對象Connection1Connection2Connection3請求連接返回連接連接池自動分配連接對象并對閑置的連接進行回收連接池應用程序數據庫第24頁/共38頁串講:數據源連接池中的連接對象是由誰創(chuàng)建的呢?數據源(DataSource)javax.sql.DataSource接口負責建立與數據庫的連接由Tomcat提供,將連接保存在連接池中第25頁/共38頁問題在Tomcat中配置數據源導入數據庫文件ojdbc14.jar配置conf/context.xml文件<Resourcename="jdbc/news"auth="Container"type="javax.sql.DataSource"maxActive="100"maxIdle="30"maxWait="10000"username="scott"password="tiger"driverClassName="oracle.jdbc.OracleDriver"url="jdbc:oracle:thin:@localhost:1521:news"/>講解:數據源的配置數據源名稱指定管理者及數據源的類型連接數量及等待時間數據庫相關信息第26頁/共38頁JNDI讀取數據源JNDI是Java命名與目錄接口通過名稱與對象的綁定實現資源獲取講解:數據源的讀取演示示例:數據源的配置與讀取//初始化上下文Contextcxt=newInitialContext();//獲取與邏輯名相關聯的數據源對象DataSourceds=(DataSource)cxt.lookup("p/env/jdbc/news");conn=ds.getConnection();通過Context接口的lookup()查找數據源p/env為JavaEE默認路徑jdbc/news為DataSource的名稱第27頁/共38頁上機練習需求說明配置數據源,實現通過數據源和連接池的方式訪問個人通訊錄完成時間:10分鐘共性問題集中講解第28頁/共38頁練習串講:JSP標簽使用JSP標簽優(yōu)化頁面顯示封裝頁面顯示功能頁面代碼簡介提高可讀性,易于維護第29頁/共38頁提問使用腳本與HTML嵌套,頁面代碼很亂,可讀性差,也不易于維護,能否進行改進?講解:JSP標簽創(chuàng)建JavaBean標簽設置JavaBean屬性<jsp:useBeanid=JavaBean名稱class=引用類的地址scope=作用域><jsp:setPropertyname=JavaBean名稱property=屬性名稱value=值><jsp:useBeanid="newsService"class="com.pb.news.service.impl.NewsServiceImpl"scope="page"/><jsp:useBeanid="newsDao"class="com.pb.news.dao.impl.NewsDaoImpl"scope="page"/><jsp:setPropertyproperty="newsDao"name="newsService"value="<%=newsDao%>"/>
演示示例:<jsp:useBean>的使用調用JavaBean設置JavaBean屬性第30頁/共38頁語法語法上機練習需求說明修改個人通訊錄查詢顯示方式,并通過JSP標簽顯示個人通訊錄的信息完成時間:10分鐘共性問題集中講解第31頁/共38頁練習講解:使用標簽獲取屬性獲取JavaBean屬性name:表示useBean中使用的JavaBean的idproperty:JavaBean的屬性名稱第32頁/共38頁<jsp:getPropertyname="BeanName"property="PropertyName"/><jsp:useBeanid="news"class="com.pb.news.entity.News"scope="page"/><jsp:setPropertyname="news"property="title"value="中國首艘…."/><jsp:getPropertyname="news"property="title"/>
演示示例:使用<jsp:getProperty>獲取屬性串講:頁面的復用當多個JSP頁面中有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽2025年安徽壽縣退役士兵扶持就業(yè)專項崗位人員招聘61人筆試歷年參考題庫附帶答案詳解
- 寧波浙江寧波市鄞州區(qū)人力資源和社會保障局下屬事業(yè)單位編外人員招聘筆試歷年參考題庫附帶答案詳解
- 寧德2025年福建寧德柘榮一中等學校招聘12人筆試歷年參考題庫附帶答案詳解
- 威海2025年山東威海乳山市面向村(社區(qū))黨組織書記招聘事業(yè)單位工作人員筆試歷年參考題庫附帶答案詳解
- 天津2025年天津市農業(yè)科學院招聘工作人員(第二輪)筆試歷年參考題庫附帶答案詳解
- 大連2025年遼寧大連醫(yī)科大學附屬第三醫(yī)院暨大醫(yī)二院普灣院區(qū)招聘筆試歷年參考題庫附帶答案詳解
- 嘉興浙江嘉興海關綜合技術服務中心實驗室招聘筆試歷年參考題庫附帶答案詳解
- office 考試試題及答案
- 整裝閉口合同范本3篇
- 仙桃2025年湖北仙桃市衛(wèi)生健康委從本系統(tǒng)三支一扶服務期滿人員中聘用筆試歷年參考題庫附帶答案詳解
- 培訓中心收費與退費制度
- 設備部2025年度工作總結報告
- (2026年)壓力性損傷的預防和護理課件
- 化工廠設備維護保養(yǎng)培訓
- 《交易心理分析》中文
- 交通安全企業(yè)培訓課件
- 砌筑施工安全教育培訓課件
- 客運索道施工方案
- GB/T 7122-2025高強度膠粘劑剝離強度的測定浮輥法
- 人教版七年級數學上冊 第四章《整式的加減》單元測試卷(含答案)
- 五常市水稻種植技術規(guī)程
評論
0/150
提交評論