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

JDBC 程序的常見(jiàn)錯(cuò)誤及調(diào)試方法

 更新時(shí)間:2009年06月04日 17:44:15   作者:  
本文是《Java Web開(kāi)發(fā)教程——入門(mén)與提高篇(JSP+Servlet)》一書(shū)《第9章 JDBC技術(shù)》的補(bǔ)充內(nèi)容。
數(shù)據(jù)庫(kù):MySQL

在編寫(xiě)應(yīng)用的時(shí)候,為了調(diào)試程序方便,可以在異常處理代碼中把異常信息顯示出來(lái),這樣可以根據(jù)錯(cuò)誤提示調(diào)試代碼。異常處理代碼通??梢詫?xiě)成這樣:
try{

}catch(Exception e){
System.out.println(e.toString());
}
下面是一些常見(jiàn)的錯(cuò)誤信息:
(1)驅(qū)動(dòng)程序不存在
提示的錯(cuò)誤信息如下:
java.lang.ClassNotFoundException: com.mysql.jdbc.Drive
后半部分是您在程序中寫(xiě)的驅(qū)動(dòng)程序的名字。
解決方法:仔細(xì)檢查類(lèi)名是否寫(xiě)錯(cuò),如果類(lèi)名沒(méi)有寫(xiě)錯(cuò),則是驅(qū)動(dòng)程序所在的壓縮包沒(méi)有引入工程,想辦法引入。
(2)URL寫(xiě)錯(cuò)
提示的錯(cuò)誤信息如下:
java.sql.SQLException: No suitable driver
解決方法:仔細(xì)檢查URL的格式是否正確,不同數(shù)據(jù)庫(kù)的URL格式不同。
(3)主機(jī)IP地址不正確或者網(wǎng)絡(luò)不通
提示的錯(cuò)誤信息如下:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.ConnectException
MESSAGE: Connection timed out: connect

STACKTRACE:

java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:132)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:273)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1639)
at com.mysql.jdbc.Connection.<init>(Connection.java:393)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:262)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at test.JDBCTest.oracleTest(JDBCTest.java:25)
at test.JDBCTest.main(JDBCTest.java:12)
** END NESTED EXCEPTION **
解決方法:查看IP地址是否正確,網(wǎng)絡(luò)是否有問(wèn)題。
(4)端口錯(cuò)誤或者數(shù)據(jù)庫(kù)服務(wù)器沒(méi)有啟動(dòng)
提示的錯(cuò)誤信息如下:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.ConnectException
MESSAGE: Connection refused: connect

STACKTRACE:

java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:132)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:273)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1639)
at com.mysql.jdbc.Connection.<init>(Connection.java:393)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:262)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at test.JDBCTest.oracleTest(JDBCTest.java:25)
at test.JDBCTest.main(JDBCTest.java:12)


** END NESTED EXCEPTION **
解決方法:查看端口是否正確,數(shù)據(jù)庫(kù)服務(wù)器是否啟動(dòng)。
(5)數(shù)據(jù)庫(kù)名字不正確
提示的錯(cuò)誤信息如下:
java.sql.SQLException: Unknown database 'test2'
解決方法:查看數(shù)據(jù)庫(kù)是否存在。
(6)用戶(hù)名或者口令不正確
提示的錯(cuò)誤信息如下:
java.sql.SQLException: Access denied for user 'roo'@'localhost' (using password: YES)
解決方法:確認(rèn)用戶(hù)名和口令是否正確。
(7)表名錯(cuò)誤
提示的錯(cuò)誤信息如下:
java.sql.SQLException: Table 'test.student1' doesn't exist
解決方法:查看表是否存在,表名是否寫(xiě)錯(cuò)。
(8)列名錯(cuò)誤
提示的錯(cuò)誤信息如下:
java.sql.SQLException: Unknown column 'sid' in 'field list'
解決方案:仔細(xì)查看數(shù)據(jù)庫(kù)表中的列名。
(9)處理結(jié)果集的時(shí)候,要獲取的列的序號(hào)大于列數(shù),或者小于0
提示的錯(cuò)誤信息如下:
java.sql.SQLException: Column Index out of range, 4 > 3.
這個(gè)錯(cuò)誤產(chǎn)生的背景是:數(shù)據(jù)庫(kù)表中只有3列,而在取信息的時(shí)候使用了rs.getString(4),尤其是在使用循環(huán)處理的時(shí)候容易犯這樣的錯(cuò)誤。
(10)執(zhí)行insert語(yǔ)句的時(shí)候,表中的列數(shù)與插入語(yǔ)句中的不相同
提示的錯(cuò)誤信息如下:
java.sql.SQLException: Column count doesn't match value count at row 1
該錯(cuò)誤產(chǎn)生的背景是:數(shù)據(jù)庫(kù)表中有3列,而插入的時(shí)候給了4個(gè)值,SQL語(yǔ)句如下:
insert into student values('0011323','李旭',22,99)。
(11)執(zhí)行insert語(yǔ)句的時(shí)候,主鍵重復(fù)。
提示的錯(cuò)誤信息如下:
java.sql.SQLException: Duplicate entry '0011323' for key 1
該錯(cuò)誤產(chǎn)生的背景是:1條SQL語(yǔ)句連續(xù)執(zhí)行了兩遍,第二遍就出錯(cuò)了。
(12)執(zhí)行insert語(yǔ)句的時(shí)候,值過(guò)長(zhǎng)
提示的錯(cuò)誤信息如下:
java.sql.SQLException: Data too long for column 'id' at row 1
解決方案,查看數(shù)據(jù)庫(kù)中列的長(zhǎng)度。

相關(guān)文章

  • springboot訪問(wèn)請(qǐng)求404的原因及解決辦法

    springboot訪問(wèn)請(qǐng)求404的原因及解決辦法

    在使用Spring Boot開(kāi)發(fā)應(yīng)用程序時(shí),有時(shí)可能會(huì)遇到訪問(wèn)請(qǐng)求出現(xiàn)404錯(cuò)誤的情況,即請(qǐng)求的資源未找到,這篇文章主要給大家介紹了關(guān)于springboot訪問(wèn)請(qǐng)求404的原因及解決辦法,需要的朋友可以參考下
    2023-09-09
  • Java點(diǎn)餐小程序之黑心商人

    Java點(diǎn)餐小程序之黑心商人

    這篇文章主要介紹了一個(gè)Java編程的小程序-點(diǎn)餐系統(tǒng),算是對(duì)之前所學(xué)習(xí)的Java基礎(chǔ)知識(shí)作了一個(gè)匯總,需要的朋友可以參考下
    2017-09-09
  • 一種新的日期處理方式之JavaScript Temporal API

    一種新的日期處理方式之JavaScript Temporal API

    JavaScript Temporal API是一種為Web開(kāi)發(fā)人員提供了一種新的處理日期和時(shí)間數(shù)據(jù)類(lèi)型的方式。它的目的是使操作日期和時(shí)間更加簡(jiǎn)單和可靠,而且不用擔(dān)心歷史時(shí)區(qū)問(wèn)題或全球化協(xié)調(diào)時(shí)間(UTC)之類(lèi)的問(wèn)題,感興趣的同學(xué)可以參考閱讀
    2023-05-05
  • Java基于JDBC連接數(shù)據(jù)庫(kù)及顯示數(shù)據(jù)操作示例

    Java基于JDBC連接數(shù)據(jù)庫(kù)及顯示數(shù)據(jù)操作示例

    這篇文章主要介紹了Java基于JDBC連接數(shù)據(jù)庫(kù)及顯示數(shù)據(jù)操作,結(jié)合實(shí)例形式分析了Java使用jdbc進(jìn)行mysql數(shù)據(jù)庫(kù)連接與數(shù)據(jù)讀取、顯示等相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • java 全角半角字符轉(zhuǎn)換如何實(shí)現(xiàn)

    java 全角半角字符轉(zhuǎn)換如何實(shí)現(xiàn)

    在java中可能會(huì)用到過(guò)全角半角字符轉(zhuǎn)換問(wèn)題,于是網(wǎng)上搜索整理了一下,曬出來(lái)和大家分享,希望可以幫助你們
    2012-12-12
  • 三種簡(jiǎn)單排序算法(使用java實(shí)現(xiàn))

    三種簡(jiǎn)單排序算法(使用java實(shí)現(xiàn))

    下面小編就為大家?guī)?lái)一篇三種簡(jiǎn)單排序算法(使用java實(shí)現(xiàn))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • java調(diào)用FFmpeg實(shí)現(xiàn)視屏壓縮功能的詳細(xì)步驟

    java調(diào)用FFmpeg實(shí)現(xiàn)視屏壓縮功能的詳細(xì)步驟

    這篇文章主要介紹了java調(diào)用FFmpeg實(shí)現(xiàn)視屏壓縮功能,本文簡(jiǎn)單的展示了java調(diào)用FFmpeg命令實(shí)現(xiàn)視屏的壓縮的詳細(xì)步驟,需要的朋友可以參考下
    2021-09-09
  • 一篇文章帶你Java多線程入門(mén)

    一篇文章帶你Java多線程入門(mén)

    這篇文章主要為大家介紹了Java多線程入門(mén),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Java實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)的三種方法

    Java實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)的三種方法

    在Java中實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)的方法,通常我們會(huì)使用java.util.Random類(lèi)來(lái)生成隨機(jī)數(shù),然后基于這些隨機(jī)數(shù)來(lái)選擇中獎(jiǎng)?wù)?以下將給出幾種常見(jiàn)的隨機(jī)抽獎(jiǎng)實(shí)現(xiàn)方式,需要的朋友可以參考下
    2024-09-09
  • Java中StringRedisTemplate和RedisTemplate的區(qū)別及使用方法

    Java中StringRedisTemplate和RedisTemplate的區(qū)別及使用方法

    本文主要介紹了Java中StringRedisTemplate和RedisTemplate的區(qū)別及使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04

最新評(píng)論

惠州市| 余干县| 柏乡县| 安图县| 平阳县| 江都市| 富蕴县| 济宁市| 连江县| 教育| 潼南县| 汝南县| 虎林市| 嘉义县| 上思县| 岳普湖县| 大冶市| 三江| 剑阁县| 久治县| 延吉市| 九寨沟县| 东平县| 那坡县| 克拉玛依市| 苏州市| 鹤峰县| 攀枝花市| 华亭县| 双城市| 林口县| 中阳县| 和林格尔县| 禹城市| 平塘县| 大荔县| 班戈县| 昭平县| 南城县| 津市市| 西峡县|