最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java.sql.SQLException問題解決以及注意事項(xiàng)

 更新時(shí)間:2023年07月25日 15:12:12   作者:程序員洲洲  
這篇文章主要給大家介紹了關(guān)于java.sql.SQLException問題解決以及注意事項(xiàng)的相關(guān)資料,這個(gè)問題其實(shí)很好解決,文中通過圖文將解決的辦法介紹的很詳細(xì),需要的朋友可以參考下

一、Bug描述

今天做項(xiàng)目開發(fā)的時(shí)候,發(fā)現(xiàn)了這個(gè)Bug,話不多說,直接定位Bug原理+解決!

java.sql.SQLException: 
java.lang.RuntimeException: java.sql.SQLException: Can not issue executeUpdate() for SELECTs
     at com.infuze.service.subscription.workflow.SyncSubscriptionTrackerWorkflow.executeProcess(SyncSubscriptionTrackerWorkflow.java:130)
     at com.infuze.service.workflow.WorkflowExecutor.execute(WorkflowExecutor.java:24)
     at com.infuze.service.subscription.xml.SubscriptionXmlService.syncTracker(SubscriptionXmlService.java:140)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at Caused by: java.sql.SQLException: Can not issue executeUpdate() for SELECTs
     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2373)

二、定位報(bào)錯(cuò)點(diǎn)

ps.executeUpdate(); //  problem is here

發(fā)現(xiàn)好問題的報(bào)錯(cuò)后,就可以解決了。

三、解決方案

ps.execute();  //代替ps.executeUpdate

四、注意事項(xiàng)及原理

Statement 接口提供了三種執(zhí)行 SQL 語句的方法:executeQuery、executeUpdate 和 execute。

使用哪一個(gè)方法由 SQL 語句所產(chǎn)生的內(nèi)容決定。

方法executeQuery用于產(chǎn)生單個(gè)結(jié)果集的語句,例如 SELECT 語句。 被使用最多的執(zhí)行 SQL 語句的方法是 executeQuery。這個(gè)方法被用來執(zhí)行 SELECT 語句,它幾乎是使用最多的 SQL 語句。

方法executeUpdate:用于執(zhí)行 INSERT、UPDATE 或 DELETE 語句以及 SQL DDL(數(shù)據(jù)定義語言)語句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 語句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一個(gè)整數(shù),指示受影響的行數(shù)(即更新計(jì)數(shù))。對(duì)于 CREATE TABLE 或 DROP TABLE 等不操作行的語句,executeUpdate 的返回值總為零。

使用executeUpdate方法是因?yàn)樵?createTableCoffees 中的 SQL 語句是 DDL (數(shù)據(jù)定義語言)語句。創(chuàng)建表,改變表,刪除表都是 DDL 語句的例子,要用 executeUpdate 方法來執(zhí)行。你也可以從它的名字里看出,方法 executeUpdate 也被用于執(zhí)行更新表 SQL 語句。實(shí)際上,相對(duì)于創(chuàng)建表來說,executeUpdate 用于更新表的時(shí)間更多,因?yàn)楸碇恍枰獎(jiǎng)?chuàng)建一次,但經(jīng)常被更新。

方法execute用于執(zhí)行返回多個(gè)結(jié)果集、多個(gè)更新計(jì)數(shù)或二者組合的語句。

execute方法應(yīng)該僅在語句能返回多個(gè)ResultSet對(duì)象、多個(gè)更新計(jì)數(shù)或ResultSet對(duì)象與更新計(jì)數(shù)的組合時(shí)使用。當(dāng)執(zhí)行某個(gè)已存儲(chǔ)過程 或動(dòng)態(tài)執(zhí)行未知 SQL 字符串(即應(yīng)用程序程序員在編譯時(shí)未知)時(shí),有可能出現(xiàn)多個(gè)結(jié)果的情況,盡管這種情況很少見。

因?yàn)榉椒?execute 處理非常規(guī)情況,所以獲取其結(jié)果需要一些特殊處理并不足為怪。例如,假定已知某個(gè)過程返回兩個(gè)結(jié)果集,則在使用方法 execute 執(zhí)行該過程后,必須調(diào)用方法 getResultSet 獲得第一個(gè)結(jié)果集,然后調(diào)用適當(dāng)?shù)?getXXX 方法獲取其中的值。要獲得第二個(gè)結(jié)果集,需要先調(diào)用 getMoreResults 方法,然后再調(diào)用 getResultSet 方法。如果已知某個(gè)過程返回兩個(gè)更新計(jì)數(shù),則首先調(diào)用方法getUpdateCount,然后調(diào)用 getMoreResults,并再次調(diào)用 getUpdateCount。

對(duì)于不知道返回內(nèi)容,則情況更為復(fù)雜。如果結(jié)果是 ResultSet 對(duì)象,則方法 execute 返回 true;如果結(jié)果是 Java int,則返回 false。如果返回 int,則意味著結(jié)果是更新計(jì)數(shù)或執(zhí)行的語句是 DDL 命令。在調(diào)用方法 execute 之后要做的第一件事情是調(diào)用 getResultSet 或 getUpdateCount。調(diào)用方法 getResultSet 可以獲得兩個(gè)或多個(gè) ResultSet 對(duì)象中第一個(gè)對(duì)象;或調(diào)用方法 getUpdateCount 可以獲得兩個(gè)或多個(gè)更新計(jì)數(shù)中第一個(gè)更新計(jì)數(shù)的內(nèi)容。

當(dāng) SQL 語句的結(jié)果不是結(jié)果集時(shí),則方法 getResultSet 將返回 null。這可能意味著結(jié)果是一個(gè)更新計(jì)數(shù)或沒有其它結(jié)果。在這種情況下,判斷 null 真正含義的唯一方法是調(diào)用方法 getUpdateCount,它將返回一個(gè)整數(shù)。這個(gè)整數(shù)為調(diào)用語句所影響的行數(shù);如果為 -1 則表示結(jié)果是結(jié)果集或沒有結(jié)果。如果方法 getResultSet 已返回 null(表示結(jié)果不是 ResultSet 對(duì)象),則返回值 -1 表示沒有其它結(jié)果。

總結(jié):寫在后面的話

到此這篇關(guān)于java.sql.SQLException問題解決以及注意事項(xiàng)的文章就介紹到這了,更多相關(guān)java.sql.SQLException問題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java基礎(chǔ)之動(dòng)態(tài)代理Cglib詳解

    Java基礎(chǔ)之動(dòng)態(tài)代理Cglib詳解

    這篇文章主要介紹了Java基礎(chǔ)之動(dòng)態(tài)代理Cglib詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • javaweb中mysql數(shù)據(jù)庫連接步驟方法及其實(shí)例

    javaweb中mysql數(shù)據(jù)庫連接步驟方法及其實(shí)例

    這篇文章主要介紹了使用java web 連接MySQL數(shù)據(jù)庫的驅(qū)動(dòng)方法的相關(guān)知識(shí),本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-04-04
  • java實(shí)現(xiàn)簡(jiǎn)單的爬蟲之今日頭條

    java實(shí)現(xiàn)簡(jiǎn)單的爬蟲之今日頭條

    最近在學(xué)習(xí)搜索方面的東西,需要了解網(wǎng)絡(luò)爬蟲方面的知識(shí),雖然有很多開源的強(qiáng)大的爬蟲,但本著學(xué)習(xí)的態(tài)度,想到之前在做資訊站的時(shí)候需要用到爬蟲來獲取一些文章,今天剛好有空就研究了一下.在網(wǎng)上看到了一個(gè)demo,使用的是Jsoup,我拿過來修改了一下,有需要的朋友可以參考
    2016-11-11
  • java分布式面試接口如何保證冪等及概念理解

    java分布式面試接口如何保證冪等及概念理解

    這篇文章主要為大家介紹了java分布式面試中接口如何保證冪等的問題解答以及概念描述,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Java編程中應(yīng)用的GUI設(shè)計(jì)基礎(chǔ)

    Java編程中應(yīng)用的GUI設(shè)計(jì)基礎(chǔ)

    這篇文章主要介紹了Java編程中應(yīng)用的GUI設(shè)計(jì)基礎(chǔ),為一些Java開發(fā)CS類型應(yīng)用的基礎(chǔ)概念知識(shí),需要的朋友可以參考下
    2015-10-10
  • Java中的Pair詳細(xì)

    Java中的Pair詳細(xì)

    這篇文章主要介紹Java中的很有意思的Pair,下面文章會(huì)以Pair用法展開,感興趣的小伙伴可以參考下面文章的具體內(nèi)容
    2021-10-10
  • win10下配置java環(huán)境變量的方法

    win10下配置java環(huán)境變量的方法

    這篇文章主要介紹了win10下配置java環(huán)境變量的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Springboot?多租戶SaaS搭建方案

    Springboot?多租戶SaaS搭建方案

    這篇文章主要介紹了Springboot?多租戶SaaS方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Java定時(shí)任務(wù)原理詳解

    Java定時(shí)任務(wù)原理詳解

    當(dāng)下,java編碼過程中,實(shí)現(xiàn)定時(shí)任務(wù)的方式主要以以下兩種為主:spring框架的@Scheduled和quzrtz框架。本文主要就二者的框架原理實(shí)現(xiàn)做一個(gè)入門引導(dǎo),為了解深層實(shí)現(xiàn)細(xì)節(jié)做一定的鋪墊
    2022-07-07
  • springboot多模塊化整合mybatis,mapper自動(dòng)注入失敗問題及解決

    springboot多模塊化整合mybatis,mapper自動(dòng)注入失敗問題及解決

    這篇文章主要介紹了springboot多模塊化整合mybatis,mapper自動(dòng)注入失敗問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評(píng)論

太仆寺旗| 广灵县| 会理县| 敖汉旗| 潮安县| 桓仁| 临朐县| 福州市| 蒲城县| 赤城县| 扎赉特旗| 大宁县| 镶黄旗| 五寨县| 图木舒克市| 江陵县| 宁远县| 连江县| 家居| 华坪县| 建水县| 德格县| 金川县| 平潭县| 黄大仙区| 阆中市| 高淳县| 略阳县| 永福县| 饶河县| 革吉县| 东兴市| 五家渠市| 天全县| 新营市| 广南县| 翁牛特旗| 新田县| 杂多县| 西乌| 大宁县|