第5章 JSP訪問數(shù)據(jù)庫_第1頁
第5章 JSP訪問數(shù)據(jù)庫_第2頁
第5章 JSP訪問數(shù)據(jù)庫_第3頁
第5章 JSP訪問數(shù)據(jù)庫_第4頁
第5章 JSP訪問數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社第第5 5章章 JSPJSP訪問數(shù)據(jù)庫訪問數(shù)據(jù)庫主要內(nèi)容主要內(nèi)容 使用使用JDBC-ODBCJDBC-ODBC橋接器連接數(shù)據(jù)庫橋接器連接數(shù)據(jù)庫 使用純使用純JavaJava數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫 Statement Statement、ResultSetResultSet的使用的使用 游動查詢游動查詢 訪問訪問ExcelExcel電子表格電子表格 使用連接池使用連接池 其他典型數(shù)據(jù)庫的連接其他典型數(shù)據(jù)庫的連接 預(yù)處理語句的使用預(yù)處理語句的使用無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.

2、1 5.1 使用使用JDBC-ODBCJDBC-ODBC橋接器連接數(shù)據(jù)庫橋接器連接數(shù)據(jù)庫5.1.1 5.1.1 核心知識核心知識使用使用JDBC-ODBCJDBC-ODBC橋接器連接數(shù)據(jù)庫的機(jī)制是:將連接橋接器連接數(shù)據(jù)庫的機(jī)制是:將連接數(shù)據(jù)庫的相關(guān)信息提供給數(shù)據(jù)庫的相關(guān)信息提供給JDBC-ODBCJDBC-ODBC驅(qū)動程序,然后轉(zhuǎn)換驅(qū)動程序,然后轉(zhuǎn)換成成JDBCJDBC接口,供應(yīng)用程序使用,而和數(shù)據(jù)庫的連接由接口,供應(yīng)用程序使用,而和數(shù)據(jù)庫的連接由ODBCODBC完成。完成。5.1.2 5.1.2 能力目標(biāo)能力目標(biāo) 掌握掌握J(rèn)DBC-ODBCJDBC-ODBC橋接器連接數(shù)據(jù)庫的方法。橋接器連接

3、數(shù)據(jù)庫的方法。5.1.3 5.1.3 任務(wù)驅(qū)動任務(wù)驅(qū)動1 1創(chuàng)建待連接的創(chuàng)建待連接的Microsoft AccessMicrosoft Access數(shù)據(jù)庫數(shù)據(jù)庫2 2建立建立JDBC-ODBCJDBC-ODBC橋接器橋接器3 3創(chuàng)建創(chuàng)建ODBCODBC數(shù)據(jù)源數(shù)據(jù)源無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.1 5.1 使用使用JDBC-ODBCJDBC-ODBC橋接器連接數(shù)據(jù)庫橋接器連接數(shù)據(jù)庫4 4和和ODBCODBC數(shù)據(jù)源指定的數(shù)據(jù)庫建立連接數(shù)據(jù)源指定的數(shù)據(jù)庫建立連接5 5在在JSPJSP頁面中使用頁面中使用JDBC-ODBCJDBC-ODBC橋接器連接數(shù)據(jù)庫橋接器連接

4、數(shù)據(jù)庫編寫一個編寫一個JSPJSP頁面頁面example5_1.jspexample5_1.jsp,該頁面中的,該頁面中的JavaJava程序片代碼使用程序片代碼使用JDBC-ODBCJDBC-ODBC橋接器連接到數(shù)據(jù)源橋接器連接到數(shù)據(jù)源myGodmyGod,查,查詢詢goodsInfogoodsInfo表中的全部記錄。頁面運行效果如圖表中的全部記錄。頁面運行效果如圖5.85.8所示。所示。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.1 5.1 使用使用JDBC-ODBCJDBC-ODBC橋接器連接數(shù)據(jù)庫橋接器連接數(shù)據(jù)庫5.1.4 5.1.4 實踐環(huán)節(jié)實踐環(huán)節(jié) 參考本節(jié)任

5、務(wù)中的主要內(nèi)容,創(chuàng)建數(shù)據(jù)源參考本節(jié)任務(wù)中的主要內(nèi)容,創(chuàng)建數(shù)據(jù)源mySkymySky,該,該數(shù)據(jù)源指定的數(shù)據(jù)庫是數(shù)據(jù)源指定的數(shù)據(jù)庫是goods.accdbgoods.accdb。編寫一個編寫一個JSPJSP頁面頁面practice5_1.jsppractice5_1.jsp,該頁面中的,該頁面中的JavaJava程序片代碼使用程序片代碼使用JDBC-ODBCJDBC-ODBC橋接器連接到數(shù)據(jù)源橋接器連接到數(shù)據(jù)源mySkymySky,查,查詢詢goodsInfogoodsInfo表中表中g(shù)oodsPricegoodsPrice字段值大于字段值大于100100的全部記錄。的全部記錄。頁面運行效果如圖

6、頁面運行效果如圖5.95.9所示。所示。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.2 5.2 使用純使用純JavaJava數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫5.2.1 5.2.1 核心知識核心知識使用純使用純JavaJava數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫,需要經(jīng)過兩個步驟:數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫,需要經(jīng)過兩個步驟:注冊純注冊純JavaJava數(shù)據(jù)庫驅(qū)動程序數(shù)據(jù)庫驅(qū)動程序和指定的數(shù)據(jù)庫建立連接和指定的數(shù)據(jù)庫建立連接無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.2 5.2 使用純使用純JavaJava數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫數(shù)據(jù)庫驅(qū)動程序連接數(shù)

7、據(jù)庫1 1注冊純注冊純JavaJava數(shù)據(jù)庫驅(qū)動程序數(shù)據(jù)庫驅(qū)動程序每種數(shù)據(jù)庫都配有自己的純每種數(shù)據(jù)庫都配有自己的純JavaJava數(shù)據(jù)庫驅(qū)動程序。數(shù)據(jù)庫驅(qū)動程序。Oracle10gOracle10g的純的純JavaJava驅(qū)動程序一般位于數(shù)據(jù)庫安裝目錄驅(qū)動程序一般位于數(shù)據(jù)庫安裝目錄“oracleproduct10.2.0db_1jdbcliboracleproduct10.2.0db_1jdbclib”下,名為下,名為classes12.jarclasses12.jar。try try Class.forName(oracle.jdbc.driver.OracleDriver);Class.f

8、orName(oracle.jdbc.driver.OracleDriver); catch (ClassNotFoundException e) catch (ClassNotFoundException e) e.printStackTrace();e.printStackTrace(); 無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.2 5.2 使用純使用純JavaJava數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫2 2和指定的數(shù)據(jù)庫建立連接和指定的數(shù)據(jù)庫建立連接和和OracleOracle數(shù)據(jù)庫建立連接的代碼如下:數(shù)據(jù)庫建立連接的代碼如下:try try Co

9、nnection Connection con=DriverManager.getConnection(jdbc:oracle:thin:con=DriverManager.getConnection(jdbc:oracle:thin:主機(jī)主機(jī): :端口端口號號: :數(shù)據(jù)庫名數(shù)據(jù)庫名, 用戶名用戶名,密碼密碼);); catch (SQLException e) catch (SQLException e) e.printStackTrace();e.printStackTrace(); 無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.2 5.2 使用純使用純JavaJava

10、數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫5.2.2 5.2.2 能力目標(biāo)能力目標(biāo)掌握純掌握純JavaJava數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫的方法。數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫的方法。5.2.3 5.2.3 任務(wù)驅(qū)動任務(wù)驅(qū)動1.1.任務(wù)的主要內(nèi)容任務(wù)的主要內(nèi)容編寫一個編寫一個JSPJSP頁面頁面example5_2.jspexample5_2.jsp,該頁面的,該頁面的JavaJava程程序片代碼使用純序片代碼使用純JavaJava驅(qū)動程序連接驅(qū)動程序連接OracleOracle數(shù)據(jù)庫,查詢數(shù)據(jù)庫,查詢goodsInfogoodsInfo表中的全部記錄。表中的全部記錄。2.2.任務(wù)的代碼模板任務(wù)的

11、代碼模板example5_2.jspexample5_2.jsp無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.2 5.2 使用純使用純JavaJava數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫3.3.任務(wù)小結(jié)或知識擴(kuò)展任務(wù)小結(jié)或知識擴(kuò)展從任務(wù)中我們可以看出編寫程序訪問數(shù)據(jù)庫需要有以從任務(wù)中我們可以看出編寫程序訪問數(shù)據(jù)庫需要有以下幾個步驟:下幾個步驟:導(dǎo)入導(dǎo)入java.sqljava.sql包包加載驅(qū)動程序加載驅(qū)動程序連接數(shù)據(jù)庫連接數(shù)據(jù)庫訪問數(shù)據(jù)庫訪問數(shù)據(jù)庫處理返回的結(jié)果集處理返回的結(jié)果集關(guān)閉數(shù)據(jù)庫連接,釋放資源關(guān)閉數(shù)據(jù)庫連接,釋放資源4.4.任務(wù)代碼模板的參考答案任務(wù)

12、代碼模板的參考答案無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.2 5.2 使用純使用純JavaJava數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫5.2.4 5.2.4 實踐環(huán)節(jié)實踐環(huán)節(jié)編寫一個編寫一個JSPJSP頁面頁面practice5_2.jsppractice5_2.jsp,該頁面中的,該頁面中的JavaJava程序片代碼使用純程序片代碼使用純JavaJava數(shù)據(jù)庫驅(qū)動程序連接數(shù)據(jù)庫驅(qū)動程序連接OracleOracle數(shù)據(jù)庫,數(shù)據(jù)庫,查詢查詢goodsInfogoodsInfo表中表中g(shù)oodsPricegoodsPrice字段值大于字段值大于1010并小于并

13、小于5050的的全部記錄。全部記錄。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.3 Statement5.3 Statement、ResultSetResultSet的使用的使用5.3.1 5.3.1 核心知識核心知識和數(shù)據(jù)庫建立連接之后,接下來若要執(zhí)行和數(shù)據(jù)庫建立連接之后,接下來若要執(zhí)行SQLSQL語句,語句,需要有以下幾個步驟:需要有以下幾個步驟:1 1創(chuàng)建創(chuàng)建StatementStatement對象對象2 2執(zhí)行執(zhí)行SQLSQL語句語句3 3處理返回的處理返回的ResultSetResultSet對象對象5.3.2 5.3.2 能力目標(biāo)能力目標(biāo)能夠靈活使用能夠靈活使

14、用StatementStatement與與ResultSetResultSet對象對數(shù)據(jù)庫進(jìn)對象對數(shù)據(jù)庫進(jìn)行增刪改查。行增刪改查。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.3 Statement5.3 Statement、ResultSetResultSet的使用的使用5.3.3 5.3.3 任務(wù)驅(qū)動任務(wù)驅(qū)動1.1.任務(wù)的主要內(nèi)容任務(wù)的主要內(nèi)容編寫兩個編寫兩個JSPJSP頁面:頁面:addGoods.jspaddGoods.jsp和和showAllGoods.jspshowAllGoods.jsp。用戶可以在。用戶可以在addGoods.jspaddGoods.jsp頁

15、面中輸入頁面中輸入信息后,點擊信息后,點擊“添加添加”按鈕把信息添加到按鈕把信息添加到goodsInfogoodsInfo表中。表中。然后,在然后,在showAllGoods.jspshowAllGoods.jsp頁面中顯示所有商品信息。在頁面中顯示所有商品信息。在該任務(wù)中需要編寫一個該任務(wù)中需要編寫一個beanbean(GoodsBean.javaGoodsBean.java),用來實),用來實現(xiàn)添加和查詢記錄?,F(xiàn)添加和查詢記錄。2.2.任務(wù)的代碼模板任務(wù)的代碼模板addGoods.jsp showAllGoods.jsp GoodsBean.javaaddGoods.jsp showAll

16、Goods.jsp GoodsBean.java無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.3 Statement5.3 Statement、ResultSetResultSet的使用的使用3.3.任務(wù)小結(jié)或知識擴(kuò)展任務(wù)小結(jié)或知識擴(kuò)展ResultSetResultSet對象自動維護(hù)指向其當(dāng)前數(shù)據(jù)行的游標(biāo)。每調(diào)用一次對象自動維護(hù)指向其當(dāng)前數(shù)據(jù)行的游標(biāo)。每調(diào)用一次next()next()方方法,游標(biāo)向下移動一行。最初它位于結(jié)果集的第一行之前,因此第一次調(diào)用法,游標(biāo)向下移動一行。最初它位于結(jié)果集的第一行之前,因此第一次調(diào)用next()next(),將把游標(biāo)置于第一行上,使它成為

17、當(dāng)前行。隨著每次調(diào)用,將把游標(biāo)置于第一行上,使它成為當(dāng)前行。隨著每次調(diào)用next()next(),游,游標(biāo)依次向下移動一行,按照從上至下的順序獲取標(biāo)依次向下移動一行,按照從上至下的順序獲取ResultSetResultSet行,實現(xiàn)順序查詢。行,實現(xiàn)順序查詢。ResultSetResultSet對象包含對象包含SQLSQL語句的執(zhí)行結(jié)果。它通過一套語句的執(zhí)行結(jié)果。它通過一套getget方法對這些行中數(shù)據(jù)的方法對這些行中數(shù)據(jù)的訪問,即使用訪問,即使用getXxxgetXxx方法獲得數(shù)據(jù)。方法獲得數(shù)據(jù)。getget方法很多,究竟用哪一個方法很多,究竟用哪一個getXxx()getXxx()方法,方

18、法,由列的數(shù)據(jù)類型來決定。使用由列的數(shù)據(jù)類型來決定。使用getXxxgetXxx方法時,需要注意以下兩點:方法時,需要注意以下兩點:無論列是何種數(shù)據(jù)類型,都可以使用無論列是何種數(shù)據(jù)類型,都可以使用getString(int columnIndex)getString(int columnIndex)或或getString(String columnName)getString(String columnName)方法獲得列值的字符串表示。方法獲得列值的字符串表示。如果使用如果使用getString(int columnIndex)getString(int columnIndex)方法查看一行

19、記錄時,不允許顛倒順方法查看一行記錄時,不允許顛倒順序,例如不允許:序,例如不允許:rs.getString(2);rs.getString(2);rs.getString(1);rs.getString(1);無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.3 Statement5.3 Statement、ResultSetResultSet的使用的使用5.3.4 5.3.4 實踐環(huán)節(jié)實踐環(huán)節(jié)編寫兩個編寫兩個JSPJSP頁面:頁面:inputQuery.jspinputQuery.jsp和和showGoods.jspshowGoods.jsp。用戶可以在用戶可以在input

20、Query.jspinputQuery.jsp頁面輸入查詢條件后,點擊頁面輸入查詢條件后,點擊“查詢查詢”按鈕。然后,在按鈕。然后,在showGoods.jspshowGoods.jsp頁面中顯示符合頁面中顯示符合查詢條件的商品信息。在本節(jié)任務(wù)的查詢條件的商品信息。在本節(jié)任務(wù)的beanbean(GoodsBean.javaGoodsBean.java)中添加一個方法)中添加一個方法getQueryResultBy()getQueryResultBy()實現(xiàn)該題的條件查詢功能。實現(xiàn)該題的條件查詢功能。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.4 5.4 游動查詢游動查詢5

21、.4.1 5.4.1 核心知識核心知識為了獲得滾動結(jié)果集,必須先用下面的方法得到一個為了獲得滾動結(jié)果集,必須先用下面的方法得到一個StatementStatement對象:對象: Statement st=con.createStatement(int type, int Statement st=con.createStatement(int type, int concurrency);concurrency);根據(jù)根據(jù)typetype和和concurrencyconcurrency的取值,當(dāng)執(zhí)行的取值,當(dāng)執(zhí)行ResultSet ResultSet rs=st.executeQuery(S

22、tring sql)rs=st.executeQuery(String sql)時,會返回不同類型的時,會返回不同類型的結(jié)果集。結(jié)果集。5.4.2 5.4.2 能力目標(biāo)能力目標(biāo) 能夠靈活使用滾動結(jié)果集進(jìn)行游動查詢。能夠靈活使用滾動結(jié)果集進(jìn)行游動查詢。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.4 5.4 游動查詢游動查詢5.4.3 5.4.3 任務(wù)驅(qū)動任務(wù)驅(qū)動1.1.任務(wù)的主要內(nèi)容任務(wù)的主要內(nèi)容編寫一個編寫一個JSPJSP頁面頁面randomQuery.jsprandomQuery.jsp,查詢,查詢goodsInfogoodsInfo表中的全部記錄,并將結(jié)果逆序輸出,最

23、后單獨輸出第表中的全部記錄,并將結(jié)果逆序輸出,最后單獨輸出第4 4條記錄。條記錄。2.2.任務(wù)的代碼模板任務(wù)的代碼模板3.3.任務(wù)小結(jié)或知識擴(kuò)展任務(wù)小結(jié)或知識擴(kuò)展4.4.任務(wù)代碼模板的參考答案任務(wù)代碼模板的參考答案無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.4 5.4 游動查詢游動查詢5.4.4 5.4.4 實踐環(huán)節(jié)實踐環(huán)節(jié)編寫一個編寫一個JSPJSP頁面頁面practice5_4.jsppractice5_4.jsp,查詢,查詢goodsInfogoodsInfo表中的記錄,并逆序輸出偶數(shù)行的記錄。表中的記錄,并逆序輸出偶數(shù)行的記錄。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)

24、做一體化教程清華大學(xué)出版社5.5 5.5 訪問訪問ExcelExcel電子表格電子表格5.5.1 5.5.1 核心知識核心知識1 1創(chuàng)建創(chuàng)建ExcelExcel電子表格電子表格2 2創(chuàng)建數(shù)據(jù)源創(chuàng)建數(shù)據(jù)源5.5.2 5.5.2 能力目標(biāo)能力目標(biāo)能夠靈活使用能夠靈活使用JDBC-ODBCJDBC-ODBC橋接器的方式訪問橋接器的方式訪問ExcelExcel電子電子表格。表格。5.5.3 5.5.3 任務(wù)驅(qū)動任務(wù)驅(qū)動1.1.任務(wù)的主要內(nèi)容任務(wù)的主要內(nèi)容編寫一個編寫一個JSPJSP頁面頁面readExcel.jspreadExcel.jsp,在該頁面的,在該頁面的JavaJava程序片中首程序片中首先

25、增加一條記錄到先增加一條記錄到studentScorestudentScore工作表中,然后修改某條記錄,最后工作表中,然后修改某條記錄,最后查詢?nèi)坑涗洝2樵內(nèi)坑涗?。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.5 5.5 訪問訪問ExcelExcel電子表格電子表格2.2.任務(wù)的代碼模板任務(wù)的代碼模板readExcel.jspreadExcel.jsp3.3.任務(wù)小結(jié)或知識擴(kuò)展任務(wù)小結(jié)或知識擴(kuò)展一個一個ExcelExcel電子表格可以有多個工作表,我們使用電子表格可以有多個工作表,我們使用JDBC-ODBCJDBC-ODBC可以訪問該電子表格中的任何一個工作表,就可以

26、訪問該電子表格中的任何一個工作表,就像訪問一個數(shù)據(jù)庫中的任意一張表一樣。像訪問一個數(shù)據(jù)庫中的任意一張表一樣。4.4.任務(wù)代碼模板的參考答案任務(wù)代碼模板的參考答案5.5.4 5.5.4 實踐環(huán)節(jié)實踐環(huán)節(jié)在在student.xlsxstudent.xlsx電子表格中新建一個工作表電子表格中新建一個工作表empTableempTable(如圖(如圖5.205.20所示),編寫一個所示),編寫一個JSPJSP頁面頁面practice5_5.jsppractice5_5.jsp,在該頁面中顯示在該頁面中顯示empTableempTable工作表中的所有記錄工作表中的所有記錄無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)

27、計教學(xué)做一體化教程清華大學(xué)出版社5.6 5.6 使用連接池使用連接池5.6.1 5.6.1 核心知識核心知識數(shù)據(jù)庫連接池的基本思想是:為數(shù)據(jù)庫連接建立一個數(shù)據(jù)庫連接池的基本思想是:為數(shù)據(jù)庫連接建立一個“緩沖池緩沖池”。預(yù)先在。預(yù)先在“緩沖池緩沖池”中放入一定數(shù)量的連接,中放入一定數(shù)量的連接,當(dāng)需要建立數(shù)據(jù)庫連接時,只需從當(dāng)需要建立數(shù)據(jù)庫連接時,只需從“緩沖池緩沖池”中取出一個,中取出一個,使用完畢之后再放回去??梢酝ㄟ^設(shè)定連接池最大連接數(shù)使用完畢之后再放回去??梢酝ㄟ^設(shè)定連接池最大連接數(shù)來防止系統(tǒng)無限度的與數(shù)據(jù)庫連接。更為重要的是,通過來防止系統(tǒng)無限度的與數(shù)據(jù)庫連接。更為重要的是,通過連接池的

28、管理機(jī)制監(jiān)視數(shù)據(jù)庫連接的數(shù)量及使用情況,為連接池的管理機(jī)制監(jiān)視數(shù)據(jù)庫連接的數(shù)量及使用情況,為系統(tǒng)開發(fā)、測試和性能調(diào)整提供依據(jù)。系統(tǒng)開發(fā)、測試和性能調(diào)整提供依據(jù)。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.6 5.6 使用連接池使用連接池5.6.2 5.6.2 能力目標(biāo)能力目標(biāo)了解連接池的工作原理,靈活使用連接池連接數(shù)據(jù)庫。了解連接池的工作原理,靈活使用連接池連接數(shù)據(jù)庫。5.6.3 5.6.3 任務(wù)驅(qū)動任務(wù)驅(qū)動1.1.任務(wù)的主要內(nèi)容任務(wù)的主要內(nèi)容編寫一個編寫一個JSPJSP頁面頁面conPool.jspconPool.jsp,在該頁面中使用,在該頁面中使用scopescop

29、e為為applicationapplication的的beanbean(由(由ConnectionPoolConnectionPool類負(fù)責(zé)創(chuàng)類負(fù)責(zé)創(chuàng)建)。該建)。該beanbean創(chuàng)建時,將建立一定數(shù)量的連接對象。因此,創(chuàng)建時,將建立一定數(shù)量的連接對象。因此,所有的用戶將共享這些連接對象。在所有的用戶將共享這些連接對象。在JSPJSP頁面中使用頁面中使用beanbean獲得一個連接對象,然后使用該連接對象訪問數(shù)據(jù)庫中的獲得一個連接對象,然后使用該連接對象訪問數(shù)據(jù)庫中的goodsInfogoodsInfo表(查詢出商品價格大于表(查詢出商品價格大于500500的商品)。的商品)。無限挑戰(zhàn) 無限

30、飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.6 5.6 使用連接池使用連接池2.2.任務(wù)的代碼模板任務(wù)的代碼模板ConnectionPool.javaConnectionPool.javaconPool.jspconPool.jsp3.3.任務(wù)小結(jié)或知識擴(kuò)展任務(wù)小結(jié)或知識擴(kuò)展我們再打開一個新的瀏覽器窗口運行我們再打開一個新的瀏覽器窗口運行conPool.jspconPool.jsp頁頁面時,會發(fā)現(xiàn)這一次訪問的速度要比第一次快得多,而且面時,會發(fā)現(xiàn)這一次訪問的速度要比第一次快得多,而且也比上幾節(jié)中訪問也比上幾節(jié)中訪問JSPJSP頁面的速度要快。頁面的速度要快。5.6.4 5.6.4 實踐

31、環(huán)節(jié)實踐環(huán)節(jié)編寫一個編寫一個JSPJSP頁面頁面pratice5_6.jsppratice5_6.jsp,在該頁面中使用,在該頁面中使用和任務(wù)中同樣的和任務(wù)中同樣的beanbean獲得一個數(shù)據(jù)庫連接對象,然后使用獲得一個數(shù)據(jù)庫連接對象,然后使用該連接對象查詢該連接對象查詢goodsInfogoodsInfo表中的全部記錄。表中的全部記錄。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.7 5.7 其他典型數(shù)據(jù)庫的連接其他典型數(shù)據(jù)庫的連接5.7.1 5.7.1 核心知識核心知識1 1連接連接SQL Server2005SQL Server20052 2連接連接MySQL5.5M

32、ySQL5.55.7.2 5.7.2 能力目標(biāo)能力目標(biāo)理解使用純理解使用純JavaJava數(shù)據(jù)庫驅(qū)動程序連接不同類型數(shù)據(jù)庫數(shù)據(jù)庫驅(qū)動程序連接不同類型數(shù)據(jù)庫的原理。的原理。5.7.4 5.7.4 實踐環(huán)節(jié)實踐環(huán)節(jié)參考本節(jié)任務(wù)中的主要內(nèi)容,使用參考本節(jié)任務(wù)中的主要內(nèi)容,使用MySQLMySQL創(chuàng)建一個數(shù)創(chuàng)建一個數(shù)據(jù)庫據(jù)庫yourdatabaseyourdatabase,在該數(shù)據(jù)庫中創(chuàng)建一張表,在該數(shù)據(jù)庫中創(chuàng)建一張表studentstudent,并編寫程序操作該表。并編寫程序操作該表。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.8 PreparedStatement5.8 Pr

33、eparedStatement的使用的使用5.8.1 5.8.1 核心知識核心知識可以使用可以使用ConnectionConnection的對象的對象concon調(diào)用調(diào)用prepareStatement(String prepareStatement(String sql)sql)方法對參數(shù)方法對參數(shù)sqlsql指定的指定的SQLSQL語句進(jìn)行預(yù)先編譯,生成數(shù)據(jù)庫的底層語句進(jìn)行預(yù)先編譯,生成數(shù)據(jù)庫的底層命令,并將該命令封裝在命令,并將該命令封裝在PreparedStatementPreparedStatement對象中。對于對象中。對于SQLSQL語句中語句中會變動的部分,可以使用通配符會變動

34、的部分,可以使用通配符“? ?”代替。例如:代替。例如:PreparedStatement ps=con. prepareStatement(insert into PreparedStatement ps=con. prepareStatement(insert into goodsInfo values(?,?,?,?);goodsInfo values(?,?,?,?);然后使用對應(yīng)的然后使用對應(yīng)的setXxx(int parameterIndex,xxx value)setXxx(int parameterIndex,xxx value)方法方法指定指定“? ?”代表的值,其中參數(shù)代表

35、的值,其中參數(shù)parameterIndexparameterIndex用來表示用來表示SQLSQL語句中從語句中從左到右的第左到右的第parameterIndexparameterIndex個通配符號,個通配符號,valuevalue代表該通配符所代表代表該通配符所代表的具體值。的具體值。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.8 PreparedStatement5.8 PreparedStatement的使用的使用5.8.2 5.8.2 能力目標(biāo)能力目標(biāo)能夠靈活使用預(yù)處理語句對象操作數(shù)據(jù)庫中的表。能夠靈活使用預(yù)處理語句對象操作數(shù)據(jù)庫中的表。5.8.3 5.8.3

36、任務(wù)驅(qū)動任務(wù)驅(qū)動1.1.任務(wù)的主要內(nèi)容任務(wù)的主要內(nèi)容編寫兩個編寫兩個JSPJSP頁面:頁面:inputPrepareGoods.jspinputPrepareGoods.jsp和和showPrepareGoods.jspshowPrepareGoods.jsp。用戶可以在。用戶可以在inputPrepareGoods.jspinputPrepareGoods.jsp頁面中輸入信息后,點擊頁面中輸入信息后,點擊“添加添加”按鈕把信息添加到按鈕把信息添加到goodsInfogoodsInfo表中。然后,在表中。然后,在showPrepareGoods.jspshowPrepareGoods.jsp頁面中顯示所有商品信息。在該任頁面中顯示所有商品信息。在該任務(wù)中需要編寫一個務(wù)中需要編寫一個beanbean(UsePrepare.javaUsePrepare.java),),beanbean中使中使用預(yù)處理語句向用預(yù)處理語句向goodsInfogoodsInfo表中添加記錄。表中添加記錄。無限挑戰(zhàn) 無限飛翔JSP網(wǎng)站設(shè)計教學(xué)做一體化教程清華大學(xué)出版社5.8 PreparedStatement5.8 PreparedStatement的使用的使用3.3.任務(wù)小結(jié)或知識擴(kuò)展任務(wù)小結(jié)或知識擴(kuò)展StatementStatement在執(zhí)行在執(zhí)行executeQuery(String

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論