最新JAVA-WEB開發(fā)實(shí)戰(zhàn)經(jīng)典P電子教案SQL標(biāo)簽庫課件_第1頁
最新JAVA-WEB開發(fā)實(shí)戰(zhàn)經(jīng)典P電子教案SQL標(biāo)簽庫課件_第2頁
最新JAVA-WEB開發(fā)實(shí)戰(zhàn)經(jīng)典P電子教案SQL標(biāo)簽庫課件_第3頁
最新JAVA-WEB開發(fā)實(shí)戰(zhàn)經(jīng)典P電子教案SQL標(biāo)簽庫課件_第4頁
最新JAVA-WEB開發(fā)實(shí)戰(zhàn)經(jīng)典P電子教案SQL標(biāo)簽庫課件_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

JAVAWEB開發(fā)實(shí)戰(zhàn)經(jīng)典第13章:標(biāo)準(zhǔn)標(biāo)簽庫(JSTL)

——SQL標(biāo)簽庫李興華北京魔樂科技軟件學(xué)院JAVAWEB開發(fā)實(shí)戰(zhàn)經(jīng)典第13章:標(biāo)準(zhǔn)標(biāo)簽庫(JSTL)本章目標(biāo)可以使用JSTL中的SQL標(biāo)簽進(jìn)行數(shù)據(jù)表的CRUD操作。本章目標(biāo)可以使用JSTL中的SQL標(biāo)簽進(jìn)行數(shù)據(jù)表的CRUD操SQL標(biāo)簽庫No.功能分類標(biāo)簽名稱描述1數(shù)據(jù)源標(biāo)簽<sql:setDataSource>設(shè)置要使用的數(shù)據(jù)源名稱2數(shù)據(jù)庫操作標(biāo)簽<sql:query>執(zhí)行查詢操作3<sql:update>執(zhí)行更新操作4事務(wù)處理標(biāo)簽<sql:transaction>執(zhí)行事務(wù)的處理操作,并設(shè)置操作的安全級(jí)別SQL標(biāo)簽庫No.功能分類標(biāo)簽名稱描述1數(shù)據(jù)源標(biāo)簽<sql<sql:setDataSource>進(jìn)行SQL操作,可以通過<sql:setDateSource>來設(shè)定數(shù)據(jù)源(DataSource),語法如下:<sql:setDataSourcedataSource="數(shù)據(jù)源名稱"[var="保存的屬性名稱"] [scope="[page|request|session|application]"]/><sql:setDataSourcedriver="數(shù)據(jù)庫驅(qū)動(dòng)程序"url="數(shù)據(jù)庫連接地址" user="用戶名"password="密碼"[var="保存的屬性名稱"] [scope="[page|request|session|application]"]/><sql:setDataSource>進(jìn)行SQL操作,可以<sql:setDataSource>標(biāo)簽的屬性No.屬性名稱EL支持描述1dataSource√數(shù)據(jù)源名稱2driver√JDBC數(shù)據(jù)庫驅(qū)動(dòng)程序3url√數(shù)據(jù)庫連接的URL地址4user√數(shù)據(jù)庫的用戶名5password√數(shù)據(jù)庫的密碼6var×儲(chǔ)存數(shù)據(jù)庫連接的屬性名稱7scope×var屬性的保存范圍,默認(rèn)為page<sql:setDataSource>標(biāo)簽的屬性No.屬性名使用配置好的數(shù)據(jù)源(jdbc/mldn)——datasource.jsp<%@tagliburi="/jstl/sql"prefix="sql"%><sql:setDataSourcedataSource="jdbc/mldn"var="mldnds"/>使用配置好的數(shù)據(jù)源(jdbc/mldn)——dataso數(shù)據(jù)庫操作標(biāo)簽數(shù)據(jù)庫的主要操作就是查詢、更新及事務(wù)處理,所以在JSTL中分別提供了<sql:query>標(biāo)簽、<sql:update>、<sql:transaction>幾個(gè)主要的操作標(biāo)簽。數(shù)據(jù)庫操作標(biāo)簽數(shù)據(jù)庫的主要操作就是查詢、更新及事務(wù)處理,所<sql:query><sql:query>標(biāo)簽的主要功能是用于執(zhí)行查詢命令的,語法如下:<sql:querysql="SQL語句"var="保存查詢結(jié)果的屬性名稱" [scope="[page|request|session|application]"] [dataSource="數(shù)據(jù)源的名稱"]maxRows="最多顯示的記錄數(shù)"startRow="記錄的開始行數(shù)"/><sql:queryvar="保存查詢結(jié)果的屬性名稱" [scope="[page|request|session|application]"] [dataSource="數(shù)據(jù)源的名稱"]maxRows="最多顯示的記錄數(shù)"startRow="記錄的開始行數(shù)"> SQL查詢語句 </sql:query><sql:query><sql:query>標(biāo)簽的主要功能<sql:query>標(biāo)簽的屬性No.屬性名稱EL支持描述1sql√編寫要執(zhí)行的查詢語句2dataSource√本查詢要使用的數(shù)據(jù)源名稱3maxRows√最多可以顯示的數(shù)據(jù)記錄數(shù)4startRow√數(shù)據(jù)的開始行數(shù),默認(rèn)在第0行5var×保存查詢結(jié)果6scope×var變量的保存范圍,默認(rèn)是page范圍<sql:query>標(biāo)簽的屬性No.屬性名稱EL支持描述使用<sql:query>標(biāo)簽查詢emp表——query_emp.jsp

<sql:setDataSourcedataSource="java:comp/env/jdbc/mldn"var="mldnds"/>

<sql:queryvar="result"> SELECTempno,ename,job,hiredate,salFROMemp;

</sql:query>使用<sql:query>標(biāo)簽查詢emp表——query查詢結(jié)果的五個(gè)屬性No.屬性名稱描述1rows根據(jù)字段名稱取出列的內(nèi)容2rowsByIndex根據(jù)字段索引取出列的內(nèi)容3columnNames取得字段的名稱4rowCount取得全部的記錄數(shù)5limitedByMaxRows取出最大的數(shù)據(jù)長度查詢結(jié)果的五個(gè)屬性No.屬性名稱描述1rows根據(jù)字段名稱輸出全部的內(nèi)容——query_emp_show.jsp<%@pagecontentType="text/html"pageEncoding="GBK"%><%@tagliburi="/jstl/core"prefix="c"%><%@tagliburi="/jstl/sql"prefix="sql"%><html><head><title>,MLDN高端Java培訓(xùn)</title></head><body>

<sql:setDataSourcedataSource="jdbc/mldn"var="mldnds"/>

<sql:queryvar="result"dataSource="${mldnds}"> SELECTempno,ename,job,hiredate,salFROMemp;

</sql:query>

<h3>一共有${result.rowCount}條記錄!</h3>

<tableborder="1"width="100%">

<!--輸出表格,邊框?yàn)?,寬度為頁面的80%-->

<tr>

<!--輸出表格的行顯示-->

<td>雇員編號(hào)</td>

<!--輸出表格的行顯示信息-->

<td>雇員姓名</td>

<td>雇員工作</td>

<td>雇員工資</td>

<td>雇傭日期</td>

</tr>

<c:forEachitems="${result.rows}"

var="row">

<tr>

<!--循環(huán)輸出雇員的信息-->

<td>${row.empno}</td>

<td>${row.ename}</td>

<td>${row.job}</td>

<td>${row.hiredate}</td>

<td>${row.sal}</td>

</tr>

</c:forEach>

</table>

<!--表格輸出完畢--></body></html>輸出全部的內(nèi)容——query_emp_show.jsp分頁顯示

<sql:queryvar="result"dataSource="${mldnds}"

maxRows="2"startRow="2"> SELECTempno,ename,job,hiredate,salFROMemp;

</sql:query>分頁顯示 <sql:queryvar="result"d<sql:update>更新操作可以使用<sql:update>進(jìn)行操作,語法如下:<sql:updatesql="SQL語句"var="保存更新的記錄數(shù)"[scope="[page|request|session|application]"] [dataSource="數(shù)據(jù)源的名稱"]/><sql:updatevar="保存更新的記錄數(shù)"[scope="[page|request|session|application]"] [dataSource="數(shù)據(jù)源的名稱"]>

更新的SQL語句 </sql:update><sql:update>更新操作可以使用<sql:upda<sql:update>標(biāo)簽的屬性No.屬性名稱EL支持描述1sql√編寫要執(zhí)行的更新語句2dataSource√本更新要使用的數(shù)據(jù)源名稱3var×保存更新的記錄數(shù)4scope×var變量的保存范圍,默認(rèn)是page范圍<sql:update>標(biāo)簽的屬性No.屬性名稱EL支持描向emp表增加新數(shù)據(jù)——insert_emp.jsp

<%@pagecontentType="text/html"pageEncoding="GBK"%><%@tagliburi="/jstl/sql"prefix="sql"%><html><head><title>,MLDN高端Java培訓(xùn)</title></head><body>

<sql:setDataSourcedataSource="jdbc/mldn"var="mldnds"/>

<sql:updatevar="result"dataSource="${mldnds}"> INSERTINTOemp(empno,ename,job,hiredate,sal)VALUES('6878','周軍','經(jīng)理','2003-03-14',9000);

</sql:update></body></html>向emp表增加新數(shù)據(jù)——insert_emp.jsp<設(shè)置參數(shù)在JDBC的操作中可以通過PreparedStatment完成預(yù)處理的操作,所有要設(shè)置的內(nèi)容,都通過“?”進(jìn)行占位,之后使用setXxx()方法設(shè)置每一個(gè)占位符的具體功能,在JSTL中也可以使用這種預(yù)處理的方式,只需要在<sql:query>或<sql:update>標(biāo)簽里使用“?”,但是所有的內(nèi)容要通過<sql:param>和<sql:dateParam>兩個(gè)標(biāo)簽設(shè)置,這兩個(gè)標(biāo)簽語法如下:

<sql:paramvalue="參數(shù)內(nèi)容"/><sql:dateParamtype="date種類"value="參數(shù)內(nèi)容"/>設(shè)置參數(shù)在JDBC的操作中可以通過PreparedStatm使用預(yù)處理執(zhí)行更新操作——preupdate_emp.jsp

<%@pagecontentType="text/html"pageEncoding="GBK"%><%@tagliburi="/jstl/sql"prefix="sql"%><html><head><title>,MLDN高端Java培訓(xùn)</title></head><body>

<% pageContext.setAttribute("empno",6878); pageContext.setAttribute("ename","李軍"); pageContext.setAttribute("job","分析員"); pageContext.setAttribute("date",newjava.util.Date());

%>

<sql:setDataSourcedataSource="jdbc/mldn"var="mldnds"/>

<sql:updatevar="result"dataSource="${mldnds}"> UPDATEempSETename=?,job=?,hiredate=?WHEREempno=?;

<sql:paramvalue="${ename}"/>

<sql:paramvalue="${job}"/>

<sql:dateParamvalue="${date}"

type="date"/>

<sql:paramvalue="${empno}"/>

</sql:update></body></html>使用預(yù)處理執(zhí)行更新操作——preupdate_emp.j事務(wù)處理

事務(wù)處理可以保證數(shù)據(jù)庫更新操作的完整性,在JSTL中通過<sql:transaction>標(biāo)簽控制事務(wù)的處理,語法如下:

<sql:transaction[dataSource="數(shù)據(jù)源名稱"] [isolation="[read_committed|read_uncommitted|repeatable|serializable]"]> <sql:update>或者<sql:query> </sql:transaction>事務(wù)處理事務(wù)處理可以保證數(shù)據(jù)庫更新操作的完整性,在JSTL事務(wù)的安全級(jí)別防范

No.安全級(jí)別臟讀不可重復(fù)讀幻象讀1read_committed2read_uncommitted√3repeatable√√4serializable√√√事務(wù)的安全級(jí)別防范No.安全級(jí)別臟讀不可重復(fù)讀幻象讀1re使用<sql:transaction>標(biāo)簽——transaction.jsp

<%@pagecontentType="text/html"pageEncoding="GBK"%><%@tagliburi="/jstl/sql"prefix="sql"%><html><head><title>,MLDN高端Java培訓(xùn)</title></head><body>

<sql:setDataSourcedataSource="jdbc/mldn"var="mldnds"/>

<sql:transactionisolation="serializable"dataSource="${mldnds}">

<sql:updatevar="result"> INSERTINTOemp(empno,ename,job,hiredate,sal)VALUES('6879','李彥','經(jīng)理','2003-03-14',3000);

</sql:update>

</sql:transaction></body></html>使用<sql:transaction>標(biāo)簽——trans小結(jié)JSTL雖然提供了SQL的支持標(biāo)簽,但是從MVC上來講,此種操作并不常用;通過SQL標(biāo)簽庫可以直接在JSP頁面中進(jìn)行數(shù)據(jù)庫的各種操作。小結(jié)JSTL雖然提供了SQL的支持標(biāo)簽,但是從MVC上來講,下一章內(nèi)容XML標(biāo)簽庫下一章內(nèi)容XML標(biāo)簽庫JAVAWEB開發(fā)實(shí)戰(zhàn)經(jīng)典第13章:標(biāo)準(zhǔn)標(biāo)簽庫(JSTL)

——SQL標(biāo)簽庫李興華北京魔樂科技軟件學(xué)院JAVAWEB開發(fā)實(shí)戰(zhàn)經(jīng)典第13章:標(biāo)準(zhǔn)標(biāo)簽庫(JSTL)本章目標(biāo)可以使用JSTL中的SQL標(biāo)簽進(jìn)行數(shù)據(jù)表的CRUD操作。本章目標(biāo)可以使用JSTL中的SQL標(biāo)簽進(jìn)行數(shù)據(jù)表的CRUD操SQL標(biāo)簽庫No.功能分類標(biāo)簽名稱描述1數(shù)據(jù)源標(biāo)簽<sql:setDataSource>設(shè)置要使用的數(shù)據(jù)源名稱2數(shù)據(jù)庫操作標(biāo)簽<sql:query>執(zhí)行查詢操作3<sql:update>執(zhí)行更新操作4事務(wù)處理標(biāo)簽<sql:transaction>執(zhí)行事務(wù)的處理操作,并設(shè)置操作的安全級(jí)別SQL標(biāo)簽庫No.功能分類標(biāo)簽名稱描述1數(shù)據(jù)源標(biāo)簽<sql<sql:setDataSource>進(jìn)行SQL操作,可以通過<sql:setDateSource>來設(shè)定數(shù)據(jù)源(DataSource),語法如下:<sql:setDataSourcedataSource="數(shù)據(jù)源名稱"[var="保存的屬性名稱"] [scope="[page|request|session|application]"]/><sql:setDataSourcedriver="數(shù)據(jù)庫驅(qū)動(dòng)程序"url="數(shù)據(jù)庫連接地址" user="用戶名"password="密碼"[var="保存的屬性名稱"] [scope="[page|request|session|application]"]/><sql:setDataSource>進(jìn)行SQL操作,可以<sql:setDataSource>標(biāo)簽的屬性No.屬性名稱EL支持描述1dataSource√數(shù)據(jù)源名稱2driver√JDBC數(shù)據(jù)庫驅(qū)動(dòng)程序3url√數(shù)據(jù)庫連接的URL地址4user√數(shù)據(jù)庫的用戶名5password√數(shù)據(jù)庫的密碼6var×儲(chǔ)存數(shù)據(jù)庫連接的屬性名稱7scope×var屬性的保存范圍,默認(rèn)為page<sql:setDataSource>標(biāo)簽的屬性No.屬性名使用配置好的數(shù)據(jù)源(jdbc/mldn)——datasource.jsp<%@tagliburi="/jstl/sql"prefix="sql"%><sql:setDataSourcedataSource="jdbc/mldn"var="mldnds"/>使用配置好的數(shù)據(jù)源(jdbc/mldn)——dataso數(shù)據(jù)庫操作標(biāo)簽數(shù)據(jù)庫的主要操作就是查詢、更新及事務(wù)處理,所以在JSTL中分別提供了<sql:query>標(biāo)簽、<sql:update>、<sql:transaction>幾個(gè)主要的操作標(biāo)簽。數(shù)據(jù)庫操作標(biāo)簽數(shù)據(jù)庫的主要操作就是查詢、更新及事務(wù)處理,所<sql:query><sql:query>標(biāo)簽的主要功能是用于執(zhí)行查詢命令的,語法如下:<sql:querysql="SQL語句"var="保存查詢結(jié)果的屬性名稱" [scope="[page|request|session|application]"] [dataSource="數(shù)據(jù)源的名稱"]maxRows="最多顯示的記錄數(shù)"startRow="記錄的開始行數(shù)"/><sql:queryvar="保存查詢結(jié)果的屬性名稱" [scope="[page|request|session|application]"] [dataSource="數(shù)據(jù)源的名稱"]maxRows="最多顯示的記錄數(shù)"startRow="記錄的開始行數(shù)"> SQL查詢語句 </sql:query><sql:query><sql:query>標(biāo)簽的主要功能<sql:query>標(biāo)簽的屬性No.屬性名稱EL支持描述1sql√編寫要執(zhí)行的查詢語句2dataSource√本查詢要使用的數(shù)據(jù)源名稱3maxRows√最多可以顯示的數(shù)據(jù)記錄數(shù)4startRow√數(shù)據(jù)的開始行數(shù),默認(rèn)在第0行5var×保存查詢結(jié)果6scope×var變量的保存范圍,默認(rèn)是page范圍<sql:query>標(biāo)簽的屬性No.屬性名稱EL支持描述使用<sql:query>標(biāo)簽查詢emp表——query_emp.jsp

<sql:setDataSourcedataSource="java:comp/env/jdbc/mldn"var="mldnds"/>

<sql:queryvar="result"> SELECTempno,ename,job,hiredate,salFROMemp;

</sql:query>使用<sql:query>標(biāo)簽查詢emp表——query查詢結(jié)果的五個(gè)屬性No.屬性名稱描述1rows根據(jù)字段名稱取出列的內(nèi)容2rowsByIndex根據(jù)字段索引取出列的內(nèi)容3columnNames取得字段的名稱4rowCount取得全部的記錄數(shù)5limitedByMaxRows取出最大的數(shù)據(jù)長度查詢結(jié)果的五個(gè)屬性No.屬性名稱描述1rows根據(jù)字段名稱輸出全部的內(nèi)容——query_emp_show.jsp<%@pagecontentType="text/html"pageEncoding="GBK"%><%@tagliburi="/jstl/core"prefix="c"%><%@tagliburi="/jstl/sql"prefix="sql"%><html><head><title>,MLDN高端Java培訓(xùn)</title></head><body>

<sql:setDataSourcedataSource="jdbc/mldn"var="mldnds"/>

<sql:queryvar="result"dataSource="${mldnds}"> SELECTempno,ename,job,hiredate,salFROMemp;

</sql:query>

<h3>一共有${result.rowCount}條記錄!</h3>

<tableborder="1"width="100%">

<!--輸出表格,邊框?yàn)?,寬度為頁面的80%-->

<tr>

<!--輸出表格的行顯示-->

<td>雇員編號(hào)</td>

<!--輸出表格的行顯示信息-->

<td>雇員姓名</td>

<td>雇員工作</td>

<td>雇員工資</td>

<td>雇傭日期</td>

</tr>

<c:forEachitems="${result.rows}"

var="row">

<tr>

<!--循環(huán)輸出雇員的信息-->

<td>${row.empno}</td>

<td>${row.ename}</td>

<td>${row.job}</td>

<td>${row.hiredate}</td>

<td>${row.sal}</td>

</tr>

</c:forEach>

</table>

<!--表格輸出完畢--></body></html>輸出全部的內(nèi)容——query_emp_show.jsp分頁顯示

<sql:queryvar="result"dataSource="${mldnds}"

maxRows="2"startRow="2"> SELECTempno,ename,job,hiredate,salFROMemp;

</sql:query>分頁顯示 <sql:queryvar="result"d<sql:update>更新操作可以使用<sql:update>進(jìn)行操作,語法如下:<sql:updatesql="SQL語句"var="保存更新的記錄數(shù)"[scope="[page|request|session|application]"] [dataSource="數(shù)據(jù)源的名稱"]/><sql:updatevar="保存更新的記錄數(shù)"[scope="[page|request|session|application]"] [dataSource="數(shù)據(jù)源的名稱"]>

更新的SQL語句 </sql:update><sql:update>更新操作可以使用<sql:upda<sql:update>標(biāo)簽的屬性No.屬性名稱EL支持描述1sql√編寫要執(zhí)行的更新語句2dataSource√本更新要使用的數(shù)據(jù)源名稱3var×保存更新的記錄數(shù)4scope×var變量的保存范圍,默認(rèn)是page范圍<sql:update>標(biāo)簽的屬性No.屬性名稱EL支持描向emp表增加新數(shù)據(jù)——insert_emp.jsp

<%@pagecontentType="text/html"pageEncoding="GBK"%><%@tagliburi="/jstl/sql"prefix="sql"%><html><head><title>,MLDN高端Java培訓(xùn)</title></head><body>

<sql:setDataSourcedataSource="jdbc/mldn"var="mldnds"/>

<sql:updatevar="result"dataSource="${mldnds}"> INSERTINTOemp(empno,ename,job,hiredate,sal)VALUES('6878','周軍','經(jīng)理','2003-03-14',9000);

</sql:update></body></html>向emp表增加新數(shù)據(jù)——insert_emp.jsp<設(shè)置參數(shù)在JDBC的操作中可以通過PreparedStatment完成預(yù)處理的操作,所有要設(shè)置的內(nèi)容,都通過“?”進(jìn)行占位,之后使用setXxx()方法設(shè)置每一個(gè)占位符的具體功能,在JSTL中也可以使用這種預(yù)處理的方式,只需要在<sql:query>或<sql:update>標(biāo)簽里使用“?”,但是所有的內(nèi)容要通過<sql:param>和<sql:dateParam>兩個(gè)標(biāo)簽設(shè)置,這兩個(gè)標(biāo)簽語法如下:

<sql:paramvalue="參數(shù)內(nèi)容"/><sql:dateParamtype="date種類"value="參數(shù)內(nèi)容"/>設(shè)置參數(shù)在JDBC的操作中可以通過PreparedStatm使用預(yù)處理執(zhí)行更新操作——preupdate_emp.jsp

<%@pagecontentType="text/html"pageEncoding="GBK"%><%@tagliburi="/jstl/sql"prefix="sql"%><html><head><title>,MLDN高端Java培訓(xùn)</title></head><body>

<% pageContext.setAttribute("empno",6878); pageContext.setAttribute("ename","李軍"); pageContext.setAttribute("job","分析員"); pageContext.setAttribute("date",newjava.util.Date());

%>

<sql:setDataSourcedataSource="jdbc/mldn"var="mldnds"/>

<sql:updatevar="result"dataSource="${mldnds}"> UPDATEempSETename=?,job=?,hiredate=?

溫馨提示

  • 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)論