å¨ç¨çº¯JSPåä¸ä¸ªé¡µé¢æ¥è¦åè½çæ¶åä¹ æ¯æ§çç¨executeQueryæ¥æ§è¡SQLè¯å¥ï¼ç»ææ§è¡updateæ¶å°±éå°é®é¢ï¼è¯å¥è½æ§è¡ï¼ä½è¿åç»æ
åºç°é®é¢ï¼å¦å¤è¿å¿½ç¥äºexecuteUpdateçè¿åå¼ä¸æ¯ç»æéResultSet,èæ¯æ°å¼ï¼ç¹æ¶èå¦ä¸ä¸ç¯æç« ï¼æè°¢ç½å们对åç§ä¿¡æ¯çè´¡
ç®ï¼ï¼
JDBCTMä¸Statementæ¥å£æä¾çexecuteãexecuteQueryåexecuteUpdateä¹é´çåºå«
Statement æ¥å£æä¾äºä¸ç§æ§è¡ SQL è¯å¥çæ¹æ³ï¼executeQueryãexecuteUpdate å executeã使ç¨åªä¸ä¸ªæ¹æ³ç± SQL è¯å¥æ产ççå
容å³å®ã
æ¹æ³executeQuery
ç¨äºäº§çå个ç»æéçè¯å¥ï¼ä¾å¦ SELECT è¯å¥ã 被使ç¨æå¤çæ§è¡ SQL è¯å¥çæ¹æ³æ¯ executeQueryãè¿ä¸ªæ¹æ³è¢«ç¨æ¥æ§è¡ SELECT è¯å¥ï¼å®å ä¹æ¯ä½¿ç¨æå¤ç SQL è¯å¥ã
æ¹æ³executeUpdate
ç¨
äºæ§è¡ INSERTãUPDATE æ DELETE è¯å¥ä»¥å SQL DDLï¼æ°æ®å®ä¹è¯è¨ï¼è¯å¥ï¼ä¾å¦ CREATE TABLE å DROP
TABLEãINSERTãUPDATE æ DELETE è¯å¥çæææ¯ä¿®æ¹è¡¨ä¸é¶è¡æå¤è¡ä¸çä¸åæå¤åãexecuteUpdate
çè¿åå¼æ¯ä¸ä¸ªæ´æ°ï¼æ示åå½±åçè¡æ°ï¼å³æ´æ°è®¡æ°ï¼ãå¯¹äº CREATE TABLE æ DROP TABLE
çä¸æä½è¡çè¯å¥ï¼executeUpdate çè¿åå¼æ»ä¸ºé¶ã
使ç¨executeUpdateæ¹æ³æ¯å 为å¨
createTableCoffees ä¸ç SQL è¯å¥æ¯ DDL ï¼æ°æ®å®ä¹è¯è¨ï¼è¯å¥ãå建表ï¼æ¹å表ï¼å é¤è¡¨é½æ¯ DDL è¯å¥çä¾åï¼è¦ç¨
executeUpdate æ¹æ³æ¥æ§è¡ãä½ ä¹å¯ä»¥ä»å®çååéçåºï¼æ¹æ³ executeUpdate ä¹è¢«ç¨äºæ§è¡æ´æ°è¡¨ SQL
è¯å¥ãå®é
ä¸ï¼ç¸å¯¹äºå建表æ¥è¯´ï¼executeUpdate ç¨äºæ´æ°è¡¨çæ¶é´æ´å¤ï¼å 为表åªéè¦å建ä¸æ¬¡ï¼ä½ç»å¸¸è¢«æ´æ°ã
æ¹æ³executeï¼
ç¨äºæ§è¡è¿åå¤ä¸ªç»æéãå¤ä¸ªæ´æ°è®¡æ°æäºè
ç»åçè¯å¥ãå 为å¤æ°ç¨åºåä¸ä¼éè¦è¯¥é«çº§åè½
executeæ¹æ³åºè¯¥ä»
å¨è¯å¥è½è¿åå¤ä¸ªResultSet对象ãå¤ä¸ªæ´æ°è®¡æ°æResultSet对象ä¸æ´æ°è®¡æ°çç»åæ¶ä½¿ç¨ãå½æ§è¡æ个已åå¨è¿ç¨æå¨ææ§è¡æªç¥ SQL å符串ï¼å³åºç¨ç¨åºç¨åºåå¨ç¼è¯æ¶æªç¥ï¼æ¶ï¼æå¯è½åºç°å¤ä¸ªç»æçæ
åµï¼å°½ç®¡è¿ç§æ
åµå¾å°è§ã
å
为æ¹æ³ execute å¤çé常è§æ
åµï¼æ以è·åå
¶ç»æéè¦ä¸äºç¹æ®å¤ç并ä¸è¶³ä¸ºæªãä¾å¦ï¼åå®å·²ç¥æ个è¿ç¨è¿å两个ç»æéï¼åå¨ä½¿ç¨æ¹æ³
execute æ§è¡è¯¥è¿ç¨åï¼å¿
é¡»è°ç¨æ¹æ³ getResultSet è·å¾ç¬¬ä¸ä¸ªç»æéï¼ç¶åè°ç¨éå½ç getXXX
æ¹æ³è·åå
¶ä¸çå¼ãè¦è·å¾ç¬¬äºä¸ªç»æéï¼éè¦å
è°ç¨ getMoreResults æ¹æ³ï¼ç¶ååè°ç¨ getResultSet
æ¹æ³ãå¦æå·²ç¥æ个è¿ç¨è¿å两个æ´æ°è®¡æ°ï¼åé¦å
è°ç¨æ¹æ³ getUpdateCountï¼ç¶åè°ç¨ getMoreResultsï¼å¹¶å次è°ç¨
getUpdateCountã
对äºä¸ç¥éè¿åå
容ï¼åæ
åµæ´ä¸ºå¤æãå¦æç»ææ¯ ResultSet 对象ï¼åæ¹æ³ execute è¿å
trueï¼å¦æç»ææ¯ Java intï¼åè¿å falseãå¦æè¿å intï¼åæå³çç»ææ¯æ´æ°è®¡æ°ææ§è¡çè¯å¥æ¯ DDL å½ä»¤ãå¨è°ç¨æ¹æ³
execute ä¹åè¦åç第ä¸ä»¶äºæ
æ¯è°ç¨ getResultSet æ getUpdateCountãè°ç¨æ¹æ³ getResultSet
å¯ä»¥è·å¾ä¸¤ä¸ªæå¤ä¸ª ResultSet 对象ä¸ç¬¬ä¸ä¸ªå¯¹è±¡ï¼æè°ç¨æ¹æ³ getUpdateCount
å¯ä»¥è·å¾ä¸¤ä¸ªæå¤ä¸ªæ´æ°è®¡æ°ä¸ç¬¬ä¸ä¸ªæ´æ°è®¡æ°çå
容ã
å½ SQL è¯å¥çç»æä¸æ¯ç»æéæ¶ï¼åæ¹æ³ getResultSet å°è¿å
nullãè¿å¯è½æå³çç»ææ¯ä¸ä¸ªæ´æ°è®¡æ°æ没æå
¶å®ç»æãå¨è¿ç§æ
åµä¸ï¼å¤æ null çæ£å«ä¹çå¯ä¸æ¹æ³æ¯è°ç¨æ¹æ³
getUpdateCountï¼å®å°è¿åä¸ä¸ªæ´æ°ãè¿ä¸ªæ´æ°ä¸ºè°ç¨è¯å¥æå½±åçè¡æ°ï¼å¦æ为 -1 å表示ç»ææ¯ç»æéæ没æç»æãå¦ææ¹æ³
getResultSet å·²è¿å nullï¼è¡¨ç¤ºç»æä¸æ¯ ResultSet 对象ï¼ï¼åè¿åå¼ -1
表示没æå
¶å®ç»æãä¹å°±æ¯è¯´ï¼å½ä¸åæ¡ä»¶ä¸ºçæ¶è¡¨ç¤ºæ²¡æç»æï¼æ没æå
¶å®ç»æï¼ï¼
((stmt.getResultSet() == null) && (stmt.getUpdateCount() == -1))
å¦
æå·²ç»è°ç¨æ¹æ³ getResultSet 并å¤çäºå®è¿åç ResultSet 对象ï¼åæå¿
è¦è°ç¨æ¹æ³ getMoreResults
以确å®æ¯å¦æå
¶å®ç»æéææ´æ°è®¡æ°ãå¦æ getMoreResults è¿å trueï¼åéè¦å次è°ç¨ getResultSet
æ¥æ£ç´¢ä¸ä¸ä¸ªç»æéãå¦ä¸æè¿°ï¼å¦æ getResultSet è¿å nullï¼åéè¦è°ç¨ getUpdateCount æ¥æ£æ¥ null
æ¯è¡¨ç¤ºç»æ为æ´æ°è®¡æ°è¿æ¯è¡¨ç¤ºæ²¡æå
¶å®ç»æã
å½ getMoreResults è¿å false æ¶ï¼å®è¡¨ç¤ºè¯¥ SQL è¯å¥è¿åä¸ä¸ªæ´æ°è®¡æ°æ没æå
¶å®ç»æãå æ¤éè¦è°ç¨æ¹æ³ getUpdateCount æ¥æ£æ¥å®æ¯åªä¸ç§æ
åµãå¨è¿ç§æ
åµä¸ï¼å½ä¸åæ¡ä»¶ä¸ºçæ¶è¡¨ç¤ºæ²¡æå
¶å®ç»æï¼
((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
ä¸é¢ç代ç æ¼ç¤ºäºä¸ç§æ¹æ³ç¨æ¥ç¡®è®¤å·²è®¿é®è°ç¨æ¹æ³ execute æ产ççå
¨é¨ç»æéåæ´æ°è®¡æ°ï¼
stmt.execute(queryStringWithUnknownRe
sults);
while (true) {
int rowCount = stmt.getUpdateCount();
if (rowCount > 0) { // å®æ¯æ´æ°è®¡æ°
System.out.println("Rows changed = " + count);
stmt.getMoreResults();
continue;
}
if (rowCount == 0) { // DDL å½ä»¤æ 0 个æ´æ°
System.out.println(" No rows changed or statement was DDL
command");
stmt.getMoreResults();
continue;
}
// æ§è¡å°è¿éï¼è¯ææä¸ä¸ªç»æé
// æ没æå
¶å®ç»æ
ResultSet rs = stmt.getResultSet;
if (rs != null) {
. . . // 使ç¨å
æ°æ®è·å¾å
³äºç»æéåçä¿¡æ¯
while (rs.next()) {
. . . // å¤çç»æ
stmt.getMoreResults();
continue;
}
温馨提示:答案为网友推荐,仅供参考