天天看点

jstl sql tag

SQL鏍囩搴?

JSTL鎻愪緵浜嗕笌鏁版嵁搴撶浉鍏虫搷浣滅殑鏍囩锛屽彲浠ョ洿鎺ヤ粠椤甸潰涓婂疄鐜版暟鎹簱鎿嶄綔鐨勫姛鑳斤紝鍦ㄥ紑鍙戝皬鍨嬬綉绔欐槸鍙互寰堟柟渚跨殑瀹炵幇鏁版嵁鐨勮鍙栧拰鎿嶄綔銆傛湰绔犲皢璇︾粏浠嬬粛杩欎簺鏍囩鐨勫姛鑳藉拰浣跨敤鏂规硶銆?

SQL鏍囩搴撲粠鍔熻兘涓婂彲浠ュ垝鍒嗕负涓ょ被锛氳缃暟鎹簮鏍囩銆丼QL鎸囦护鏍囩銆?

寮曞叆SQL鏍囩搴撶殑鎸囦护浠g爜涓猴細

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

9.4.1 璁剧疆鏁版嵁婧?

浣跨敤<sql:setDataSource>鏍囩鍙互瀹炵幇瀵规暟鎹簮鐨勯厤缃€?

銆愯娉?銆戯細鐩存帴浣跨敤宸茬粡瀛樺湪鐨勬暟鎹簮銆?

<sql:setDataSource dataSource=鈥漝ataSource鈥漑var=鈥漬ame鈥漖

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 [scope=鈥漰age|request|session|application鈥漖/>

銆愯娉?銆戯細浣跨敤JDBC鏂瑰紡寤虹珛鏁版嵁搴撹繛鎺ャ€?

<sql:setDataSource driver=鈥漝riverClass鈥?url=鈥漥dbcURL鈥?

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 user=鈥漸sername鈥?

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 password=鈥漰wd鈥澛犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅?

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 [var=鈥漬ame鈥漖

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 [scope=鈥漰age|request|session|application鈥漖/>

銆愬弬鏁拌鏄庛€戯細瑙佽〃9-15

琛?-15 <sql:DataSource>鏍囩灞炴€ц鏄?

鍙傛暟鍚? 璇存槑 EL 绫诲瀷 蹇呴』 榛樿鍊?
dataSource 鏁版嵁婧? 鏄?

String

Javax.sql.DataSource

鍚? 鏃?
driver 浣跨敤鐨凧DBC椹卞姩 鏄? String 鍚? 鏃?
url 杩炴帴鏁版嵁搴撶殑璺緞 鏄? String 鍚? 鏃?
user 杩炴帴鏁版嵁搴撶殑鐢ㄦ埛鍚? 鏄? String 鍚? 鏃?
password 杩炴帴鏁版嵁搴撶殑瀵嗙爜 鏄? String 鍚? 鏃?
var 鎸囧畾瀛樺偍鏁版嵁婧愮殑鍙橀噺鍚? 鍚? String 鍚? 鏃?
scope 鎸囧畾鏁版嵁婧愬瓨鍌ㄧ殑JSP鑼冨洿 鍚? String 鍚? page

鎻愮ず锛氭槸鍚﹀繀椤绘槸鐩稿鐨勶紝姣斿璇村鏋滀娇鐢ㄦ暟鎹簮鍒欙紝driver銆乽rl绛夊氨涓嶅啀琚娇鐢ㄣ€傚鏋滀娇鐢↗DBC鍒欒鐢ㄥ埌driver銆乽rl銆乽ser銆乸assword灞炴€с€?

渚嬪杩炴帴SQL Server闇€瑕佽繘琛屽涓嬮厤缃細

Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"

url=鈥?jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs"

user=鈥漵a鈥?

password=鈥濃€?

浣跨敤<fmt:setDataSource>閰嶇疆鐨勪唬鐮佸涓嬶細

<fmt:setDataSource driver=鈥漜om.microsoft.jdbc.sqlserver.SQLServerDriver鈥?

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 url=鈥漥dbc.microsoft:sqlserver://localhost:1433;DatabaseName=pubs鈥?

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 user=鈥漵a鈥?

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 password=鈥濃€?gt;

濡傛灉杩炴帴鍏朵粬鏁版嵁搴擄紝鍙』鎶婄浉瀵瑰簲鐨勯」淇敼鍗冲彲銆?

鎻愮ず锛氬彲浠ユ妸鏁版嵁杩炴帴鐨勯厤缃瓨鍏ession涓紝濡傛灉鍐嶇敤鍒版暟鎹簱杩炴帴鍙』閰嶇疆浣跨敤DataSource灞炴€с€?

9.4.2 SQL鎿嶄綔鏍囩

JSTL鎻愪緵浜?lt;sql:query>銆?lt;sql:update>銆?lt;sql:param>銆?lt;sql:dateParam>鍜?lt;sql:transaction>杩?涓爣绛撅紝閫氳繃浣跨敤SQL璇█鎿嶄綔鏁版嵁搴擄紝瀹炵幇澧炲姞銆佸垹闄ゃ€佷慨鏀圭瓑鎿嶄綔銆備笅闈㈠皢浠嬬粛杩?涓爣绛剧殑鍔熻兘鍜屼娇鐢ㄦ柟寮忋€?

1锛?lt;sql:query>鏍囩

<sql:query>鏍囩鐢ㄦ潵鏌ヨ鏁版嵁銆?

銆愯娉?銆戯細

<sql:query sql=鈥漵qlQuery鈥?var=鈥漬ame鈥?[scope=鈥漰age|request|session|application鈥漖

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 [dataSource=鈥漝ateSource鈥漖

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 [maxRow=鈥漨axRow鈥漖

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 [startRow=鈥漵tarRow鈥漖/>

銆愯娉?銆戯細

<sql:query var=鈥漬ame鈥?[scope=鈥漰age|request|session|application鈥漖

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 [dataSource=鈥漝ateSource鈥漖

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 [maxRow=鈥漨axRow鈥漖

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 [startRow=鈥漵tarRow鈥漖

>

sqlQuery

</sql:query>

銆愬睘鎬ц鏄庛€戯細瑙佽〃9-16銆?

琛?-16 <sql:query>鏍囩灞炴€ц鏄?

鍙傛暟鍚? 璇存槑 EL 绫诲瀷 蹇呴』 榛樿鍊?
sql 鏌ヨ鏁版嵁鐨凷QL璇彞 鏄? String 鏄? 鏃?
dataSource 鏁版嵁婧愬璞? 鏄?

String

Javax.sql.DataSoutce

鍚? 鏃?
maxRow 璁惧畾鏈€澶氬彲浠ユ殏瀛樻暟鎹殑琛屾暟 鏄? String 鍚? 鏃?
startRow 璁惧畾浠庨偅涓€琛屾暟鎹紑濮? 鏄? String 鍚? 鏃?
var 鎸囧畾瀛樺偍鏌ヨ缁撴灉鐨勫彉閲忓悕 鍚? String 鏄? 鏃?
scope 鎸囧畾缁撴灉鐨勪綔鐢ㄥ煙 鍚? String 鍚? page

浣跨敤<sql:query>蹇呴』鎸囧畾鏁版嵁婧愶紝dataSource鏄彲閫夌殑锛屽鏋滄湭缁欏畾璇ュ睘鎬ф爣绛句細鍦╬age鑼冨洿鍐呮煡鎵炬槸鍚﹁缃繃鏁版嵁婧愶紝濡傛灉娌℃湁鎵惧埌灏嗘姏鍑哄紓甯搞€?

涓€鑸儏鍐典笅浣跨敤<sql:setDateSource>鏍囩璁剧疆涓€涓暟鎹簮瀛樺偍鍦╯ession鑼冨洿涓紝褰撻渶瑕佹暟鎹簱杩炴帴鏃朵娇鐢╠ataSource灞炴€у苟瀹炵幇鏁版嵁搴撶殑鎿嶄綔銆?

<sql:query>鐨剉ar灞炴€ф槸蹇呴』鐨勭敤鏉ュ瓨鏀剧粨鏋滈泦锛屽鏋滄病鏈夋寚瀹歴cope鑼冨洿鍒欓粯璁や负page锛屽嵆鍦ㄥ綋鍓嶉〉闈㈡垜浠彲浠ラ殢鏃惰緭鍑烘煡璇㈢粨鏋溿€傜粨鏋滈泦鏈変竴绯诲垪鐨勫睘鎬у琛?-17鎵€绀恒€?

maxRows鍜宻tartRow灞炴€х敤鏉ユ搷浣滅粨鏋滈泦锛屼娇鐢⊿QL璇彞棣栧厛鍚ф暟鎹斁鍏ュ唴瀛樹腑锛屾鏌ユ槸鍚﹁缃簡startRow灞炴€э紝濡傛灉璁剧疆浜嗗氨浠巗tarRow鎸囧畾鐨勯偅涓€琛屽紑濮嬪彇maxRows涓€硷紝濡傛灉娌℃湁璁惧畾鍒欎粠绗竴琛屽紑濮嬪彇銆?

琛?-17 缁撴灉闆嗗弬鏁拌鏄?

灞炴€у悕 绫诲瀷 璇存槑
rowCount int 缁撴灉闆嗕腑鐨勮褰曟€绘暟
Rows Java.util.Map 浠ュ瓧娈典负绱㈠紩鏌ヨ鐨勭粨鏋?
rowsByIndex Object[] 浠ユ暟瀛椾负浣滅储寮曠殑鏌ヨ缁撴灉
columnNames String[] 瀛楁鍚嶇О鏁扮粍
limitedByMaxRows boolean 鏄惁璁剧疆浜唌axRows灞炴€ф潵闄愬埗鏌ヨ璁板綍鐨勬暟閲?

鎻愮ず锛歭imitedByMaxRows鐢ㄦ潵鍒ゆ柇绋嬪簭鏄惁鏀跺埌maxRows灞炴€х殑闄愬埗銆傚苟涓嶆槸璇磋瀹氫簡maxRows灞炴€э紝寰楀埌缁撴灉闆嗙殑limitedByMaxRows鐨勫睘鎬ч兘涓簍rue锛屽綋鍙栧嚭鐨勭粨鏋滈泦灏忎簬maxRows鏃讹紝鍒檓axRows娌℃湁瀵圭粨鏋滈泦璧峰埌浣滅敤姝ゆ椂涔熶负false銆備緥濡傚彲浠ヤ娇鐢╯tartRow灞炴€ч檺鍒剁粨鏋滈泦鐨勬暟鎹噺銆?

缁撴灉闆嗙殑浣滅敤灏辨槸瀹氫箟浜嗘暟鎹湪椤甸潰涓殑鏄剧ず鏂瑰紡銆備笅闈㈢粰鍑轰簡缁撴灉闆嗘瘡涓睘鎬х殑浣滅敤銆?

q聽聽聽聽聽聽聽 rowCount灞炴€с€傝灞炴€х粺璁$粨鏋滈泦涓湁鏁堣褰曠殑閲忥紝鍙互浣跨敤浜庡ぇ鎵归噺鏁版嵁鍒嗛〉鏄剧ず銆?

q聽聽聽聽聽聽聽 Rows灞炴€с€傜瓑鍒版瘡涓瓧娈靛搴旂殑鍊笺€傝繑鍥炵殑缁撴灉涓猴細瀛楁鍚?{瀛楁鍊悸仿仿穧

q聽聽聽聽聽聽聽 rowsByIndex灞炴€с€傚父鐢ㄥ緱鍒版暟鎹簱涓暟鎹殑鏂瑰紡锛屼粠鏈夋晥琛岀殑绗竴涓厓绱犲紑濮嬮亶鍘嗭紝鍒版渶鍚庝竴涓湁鏁堣鐨勬渶鍚庝竴涓厓绱犮€?

q聽聽聽聽聽聽聽 columnNames灞炴€с€傜敤浜庡緱鍒版暟鎹簱涓殑瀛楁鍚嶃€?

q聽聽聽聽聽聽聽 limitedByMaxRows灞炴€с€傜敤浜庡垽鏂槸鍚﹀彈鍒颁簡maxRows鐨勯檺鍒躲€?

銆愮ず渚嬩唬鐮併€戯細浠g爜9.20缁欏嚭浜嗛厤缃暟鎹簱杩炴帴锛屽拰浣跨敤<sql:query>鏌ヨ鏁版嵁浠ュ強缁撴灉闆嗗睘鎬х殑浣跨敤銆?

浠g爜9.20 鏁版嵁搴撶ず鏌ヨ绀轰緥锛歴qldemo01.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

<%@ page contentType="text/html;charset=GBK"%>

<html>

<head>

<title>JSTL: SQL鏍囩</title>

</head>

<body >

<h3>SQL鏍囩搴?lt;/h3>

<hr>

<sql:setDataSource driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"

聽聽聽聽聽聽聽聽 url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"

聽聽聽聽聽聽聽聽 user="sa" password="" />

<sql:query var="result" sql="select * from person" maxRows="2" startRow="1"/>

缁撴灉闆嗙殑瀹炶川鏄細${result}<br>

寰楀埌鐨勮鏁颁负锛?{result.rowCount}<br>

鏄惁鏀跺埌浜唌axRows鐨勯檺鍒讹細${result.limitedByMaxRows}

<hr>

<table align="center">

<tr><c:forEach var="columnName" items="${result.columnNames}">

<td>

<c:out value="${columnName}"/>

</td>

</c:forEach> </tr>

<c:forEach var="row" items="${result.rowsByIndex}">

<tr>

<c:forEach var="column" items="${row}">

<td><c:out value="${column}"/></td>

</c:forEach>

</tr>

</c:forEach>

</table>

</body>

</html>

銆愪唬鐮佽В鏋愩€戯細

锛?锛夐厤缃暟鎹簮銆備娇鐢?lt;sql:dataSource>鏍囩閰嶇疆鏁版嵁婧愶紝鍥犱负鍙叡鏈〉浣跨敤鍥犳瀛樺偍鍦ㄩ粯璁ょ殑page鑼冨洿涓€?

锛?锛変娇鐢?lt;sql:query>鏍囩杩涜鏁版嵁搴撴煡璇紝骞跺畾涔変簡maxRows鍜宻tartRow灞炴€с€傚苟鎶婄粨鏋滈泦瀛樺偍浜庝綔鐢ㄤ簬page鑼冨洿鐨剅esult鍙橀噺銆備娇鐢?{result}杈撳嚭鍙互鍙戠幇缁撴灉闆嗗氨鏄竴涓猂esultImpl绫汇€?

鎻愮ず锛氬湪杩涜鏁版嵁婧愰厤缃椂绋嬪簭涓嶄細妫€鏌ユ暟鎹簱杩炴帴鏄惁閰嶇疆姝g‘锛岀洿鎺ユ牴鎹瀹氱殑鏁版嵁搴撳強杩炴帴璁块棶锛屽鏋滄病鏈夋壘鍒板垯鎶涘嚭鎿嶄綔鐨勮〃寮傚父锛屽洜姝よ鏀惧<c:catch></c:catch>鍚屾椂鍦ㄧ紪鍐欑▼搴忔椂涓€瀹氳娉ㄦ剰鏁版嵁婧愭槸鍚﹂厤缃纭€?

锛?锛変娇鐢ㄧ粨鏋滈泦鐨剅owCount灞炴€у緱鍒拌褰曠殑鎬婚噺銆備唬鐮佷负锛?

${result.rowCount}

锛?锛変娇鐢ㄧ粨鏋滈泦鐨刲imitedMaxRows灞炴€у垽鏂槸鍚︽敹鍒癿axRows璁惧畾鐨勫奖鍝嶃€備唬鐮佷负锛?

${result.limitedMaxRows}

锛?锛変粠缁撴灉闆嗕腑寰楀埌鏁版嵁搴撲腑瀹氫箟鐨勬墍鏈夌殑瀛楁銆?{result.columnnames}寰楀埌鐨勭粨鏋滄槸涓€涓瓧绗︿覆鏁扮粍锛屽洜姝ら渶瑕佷娇鐢?lt;c:forEach>寰幆杈撳嚭銆備唬鐮佸涓嬶細

<c:forEach var="columnName" items="${result.columnNames}">

<c:out value="${columnName}"/>

</c:forEach>

锛?锛変粠缁撴灉闆嗕腑寰楀埌鎵€鏈夌殑鍊笺€傞鍏堣閬嶅巻姣忎竴琛岋紝鐒跺悗閬嶅巻姣忎竴琛屼腑鐨勫厓绱狅紝鍥犳闇€瑕佸惊鐜祵濂椼€備唬鐮佸涓嬶細

<c:forEach var="columnName" items="${result.columnNames}">

<c:out value="${columnName}"/>

</c:forEach>

<c:forEach var="row" items="${result.rowsByIndex}">

<c:forEach var="column" items="${row}">

<c:out value="${column}"/></td>

</c:forEach>

</c:forEach>

鎻愮ず锛氬湪浠g爜瑙f瀽涓渷鐣ヤ簡html鍏冪礌琛ㄦ牸绛夋爣绛剧殑鍏冪礌锛屾湰绀轰緥閫傜敤浜庝换浣曟暟鎹簱琛紝鍙鎶婃暟鎹簱鐨刄RL銆佷娇鐢ㄧ殑JDBC杩涜鐩稿簲鐨勯厤缃拰鎿嶄綔鐨勬暟鎹〃鍚嶈繘琛岀浉搴旂殑淇敼鍗冲彲鐪嬪埌缁撴灉銆?

绋嬪簭杩愯缁撴灉濡傚浘9.23鎵€绀恒€?

鍥?.23 鏌ヨ鎿嶄綔缁撴灉鍥?

2锛?lt;sql:update>鏍囩

<sql:update>鐢ㄦ潵瀹炵幇鎿嶄綔鏁版嵁搴撳锛氫娇鐢╟reate銆乽pdate銆乨elete鍜宨nsert绛塖QL璇彞锛屽苟杩斿洖褰卞搷璁板綍鐨勬潯鏁般€?

銆愯娉?銆戯細SQL璇彞鏀惧湪鏍囩灞炴€т腑銆?

<sql:update sql=鈥漇QL璇彞鈥?[var=鈥漬ame鈥漖 [scope=鈥漰age|request|session|application鈥漖

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 [dateSource=鈥漝ateSource鈥漖/>

銆愯娉?銆戯細SQL璇彞鏀惧湪鏍囩浣撳唴銆?

<sql:update [var=鈥漬ame鈥漖 [scope=鈥漰age|request|session|application鈥漖

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 [dateSource=鈥漝ateSource鈥漖

>

SQL璇彞

</sql:update>

銆愬弬鏁拌鏄庛€戯細瑙佽〃9-18銆?

琛?-18 <sql:update>鏍囩灞炴€ц鏄?

鍙傛暟鍚? 璇存槑 EL 绫诲瀷 蹇呴』 榛樿鍊?
sql 鏌ヨ鏁版嵁鐨凷QL璇彞 鏄? String 鏄? 鏃?
dataSource 鏁版嵁婧愬璞? 鏄?

String

Javax.sql.DataSoutce

鍚? 鏃?
var 鎸囧畾瀛樺偍鏌ヨ缁撴灉鐨勫彉閲忓悕 鍚? String 鏄? 鏃?
scope 鎸囧畾缁撴灉鐨勪綔鐢ㄥ煙 鍚? String 鍚? page

鎻愮ず锛?lt;sql:update>鏍囩鐨勫睘鎬у悓<sql:query>鏍囩鐨勫睘鎬х浉姣斿彧鍑忓皯浜唌axRows鍜宻tartRow2涓睘鎬с€傚叾浠栧弬鏁扮敤娉曚竴鏍枫€?

浣跨敤<sql:update>鍙互瀹炵幇鏁版嵁琛ㄧ殑鍒涘缓銆佹彃鍏ユ暟鎹€佹洿琛屾暟鎹€佸垹闄ゆ暟鎹€備娇鐢ㄦ椂鍙』鍦ㄦ爣绛句腑鏀惧叆姝g‘鐨凷QL璇彞鍗冲彲锛屽悓鏃惰鎹曡幏鍙兘浜х敓鐨勫紓甯搞€傛湰鑺傚彧瀵逛竴涓畝鍗曠殑鎻掑叆鎿嶄綔杩涜璇存槑銆?

銆愮ず渚嬩唬鐮併€戯細浠g爜9.21瀹炵幇浜嗗垱寤轰竴涓〃銆佸疄鐜版暟鎹殑鎻掑叆銆?

浠g爜9.21 鏁版嵁搴撳垱寤恒€佹暟鎹彃鍏ョず渚嬶細sqldemo02.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

<%@ page contentType="text/html;charset=GBK"%>

<html>

<head>

<title>JSTL: SQL鏍囩</title>

</head>

<body >

<h3>SQL鏍囩搴?lt;/h3>

<hr>

<sql:setDataSource driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"

聽聽聽聽聽聽聽聽 url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"

聽聽聽聽聽聽聽聽 user="sa" password="" />

瀹炵幇鏁版嵁搴撹〃鐨勫垱寤?lt;br>

<sql:update var="result1">

create table c_user (

聽聽聽聽聽聽聽聽聽 id int primary key ,

聽聽聽聽 name varchar(80),

聽聽聽聽 sex varchar(80),

)

</sql:update>

<c:catch var="error">

<sql:update var="result2" >

insert c_user values(05,'Linda','濂?)

insert c_user values(01,'Rom','鐢? )

</sql:update>

褰卞搷鐨勮褰曟暟涓猴細<c:out value="${result2}"></c:out>

</c:catch>

<c:out value="${error}"></c:out><br>

<hr>

</body>

</html>

銆愪唬鐮佽В鏋愩€戯細

锛?锛夐厤缃暟鎹簮銆?

锛?锛変娇鐢?lt;sql:update>鏍囩鍒涘缓涓€涓柊琛ㄣ€?

锛?锛夊悜琛ㄤ腑鎻掑叆涓よ鏁版嵁銆?

鎻愮ず锛氭湰绀轰緥涔熸病鏈夐拡瀵瑰浐瀹氱殑琛ㄨ繘琛屾搷浣滐紝鍦ㄤ娇鐢ㄦ椂鐩存帴杩愯鍗冲彲锛屽鏋滀娇鐢ㄧ殑鏄叾浠栨暟鎹簱锛岄渶瑕佹洿鏀规暟鎹簮閰嶇疆鍜孲QL璇彞閮ㄥ垎淇敼銆?

绋嬪簭杩愯缁撴灉濡傚浘9.24鎵€绀恒€?

鍥?.24 sqldemo02.jsp杩愯鏁堟灉

浠庡浘9.24涓彲浠ュ彂鐜帮紝浣跨敤<sql:update>鐨剉ar灞炴€ц褰曠粨鏋滄槸涓嶅噯纭殑锛屽挨鍏舵槸鍦ㄤ竴涓爣绛句腑浣跨敤澶氭潯sql璇彞鍙兘璁板綍涓嬬涓€鏉°€傚湪鏁版嵁搴撲腑鍒涘缓鐨刢_user琛ㄥ鍥?.25鎵€绀恒€?

鍥?.25 SQL琛ㄧ殑鍐呭

3锛?lt;sql:param>鏍囩

<sql:param>鏍囩鐢ㄤ簬鍔ㄦ€佺殑涓篠QL璇彞璁惧畾鍙傛暟锛屽悓<sql:query>鏍囩鍏卞悓浣跨敤銆傚彲浠ラ槻姝QL娉ㄥ叆浣滅敤绫讳技浜巎ava.sql.PreparedStatement銆?

銆愯娉?銆戯細

<sql:param value=鈥漹alue鈥?>

銆愯娉?銆戯細

<sql:param>

Value

</sql:param>

銆愬弬鏁拌鏄庛€戯細

value鐨勪綔鐢ㄤ负SQL涓殑鍙傛暟璧嬪€笺€?

銆愪娇鐢ㄧず渚嬨€戯細

<sql:query var=鈥漴esult鈥?gt;

select * from person where 搴忓彿=锛?

<sql:query>

4锛?lt;sql:dateParam>鏍囩

<sql:dataParam>鏍囩涓昏鐢ㄤ簬涓篠QL鏍囩濉厖鏃ユ湡绫诲瀷鐨勫弬鏁板€笺€?

銆愯娉曘€戯細

<sql:dateParam value=鈥漝ate鈥漑type=鈥漷imestamp|time|date鈥漖/>

銆愬弬鏁拌鏄庛€戯細

q聽聽聽聽聽聽聽 value灞炴€э細java.util.Date绫诲瀷鐨勫弬鏁般€?

q聽聽聽聽聽聽聽 type灞炴€э細鎸囧畾濉厖鏃ユ湡鐨勭被鍨媡imestamp锛堝叏閮ㄦ棩鏈熷拰鏃堕棿锛夈€乼ime锛堝~鍏呯殑鍙傛暟涓烘椂闂达級銆乨ate锛堝~鍏呯殑鍙傛暟涓烘棩鏈燂級銆?

5锛?lt;sql:transaction>鏍囩

<sql:transaction>鏍囩鎻愪緵浜嗘暟鎹搷浣滅殑涓€绉嶅畨鍏ㄦ満鍒讹紙鍗充簨鍔″洖婊氾級锛屽綋鎿嶄綔鏁版嵁搴撶殑鏌愭潯SQL璇彞鍙戠敓寮傚父鏃讹紝鍙栨秷<sql:transaction>鏍囩浣撲腑鐨勬墍鏈夋搷浣滐紝鎭㈠鍘熸潵鐨勭姸鎬侊紝閲嶆柊瀵规暟鎹簱杩涜鎿嶄綔銆?

銆愯娉曘€戯細

<sql:transaction [dataSource=鈥漝ataSource鈥漖

[isolation=鈥漴ead_committed|read_uncommitted|repeatable|serializable鈥漖

>

<sql:query>

<sql:uptade>

</sql:transation>

杞浇浜?https://www.cnblogs.com/greencolor/archive/2012/01/30/2332228.html