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