欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

}catch(Exception e){
System.out.println(e.toString());
}
下面是一些常見的錯誤信息:
(1)驅(qū)動程序不存在
提示的錯誤信息如下:
java.lang.ClassNotFoundException: com.mysql.jdbc.Drive
后半部分是您在程序中寫的驅(qū)動程序的名字。
解決方法:仔細檢查類名是否寫錯,如果類名沒有寫錯,則是驅(qū)動程序所在的壓縮包沒有引入工程,想辦法引入。
(2)URL寫錯
提示的錯誤信息如下:
java.sql.SQLException: No suitable driver
解決方法:仔細檢查URL的格式是否正確,不同數(shù)據(jù)庫的URL格式不同。
(3)主機IP地址不正確或者網(wǎng)絡(luò)不通
提示的錯誤信息如下:
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ò)是否有問題。
(4)端口錯誤或者數(shù)據(jù)庫服務(wù)器沒有啟動
提示的錯誤信息如下:
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ù)庫服務(wù)器是否啟動。
(5)數(shù)據(jù)庫名字不正確
提示的錯誤信息如下:
java.sql.SQLException: Unknown database 'test2'
解決方法:查看數(shù)據(jù)庫是否存在。
(6)用戶名或者口令不正確
提示的錯誤信息如下:
java.sql.SQLException: Access denied for user 'roo'@'localhost' (using password: YES)
解決方法:確認用戶名和口令是否正確。
(7)表名錯誤
提示的錯誤信息如下:
java.sql.SQLException: Table 'test.student1' doesn't exist
解決方法:查看表是否存在,表名是否寫錯。
(8)列名錯誤
提示的錯誤信息如下:
java.sql.SQLException: Unknown column 'sid' in 'field list'
解決方案:仔細查看數(shù)據(jù)庫表中的列名。
(9)處理結(jié)果集的時候,要獲取的列的序號大于列數(shù),或者小于0
提示的錯誤信息如下:
java.sql.SQLException: Column Index out of range, 4 > 3.
這個錯誤產(chǎn)生的背景是:數(shù)據(jù)庫表中只有3列,而在取信息的時候使用了rs.getString(4),尤其是在使用循環(huán)處理的時候容易犯這樣的錯誤。
(10)執(zhí)行insert語句的時候,表中的列數(shù)與插入語句中的不相同
提示的錯誤信息如下:
java.sql.SQLException: Column count doesn't match value count at row 1
該錯誤產(chǎn)生的背景是:數(shù)據(jù)庫表中有3列,而插入的時候給了4個值,SQL語句如下:
insert into student values('0011323','李旭',22,99)。
(11)執(zhí)行insert語句的時候,主鍵重復。
提示的錯誤信息如下:
java.sql.SQLException: Duplicate entry '0011323' for key 1
該錯誤產(chǎn)生的背景是:1條SQL語句連續(xù)執(zhí)行了兩遍,第二遍就出錯了。
(12)執(zhí)行insert語句的時候,值過長
提示的錯誤信息如下:
java.sql.SQLException: Data too long for column 'id' at row 1
解決方案,查看數(shù)據(jù)庫中列的長度。

相關(guān)文章

  • Java遞歸遍歷文件目錄代碼實例

    Java遞歸遍歷文件目錄代碼實例

    這篇文章主要介紹了Java遞歸遍歷文件目錄代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • 關(guān)于idea-web.xml版本過低怎么生成新的(web.xml報錯)問題

    關(guān)于idea-web.xml版本過低怎么生成新的(web.xml報錯)問題

    今天通過本文給大家分享idea-web.xml版本過低怎么生成新的(web.xml報錯)問題,通過更換web.xml版本解決此問題,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • java switch語句使用注意的四大細節(jié)

    java switch語句使用注意的四大細節(jié)

    很多朋友在使用java switch語句時,可能沒有注意到一些細節(jié),本文將詳細介紹使用java switch語句四大要點,需要的朋友可以參考下
    2012-12-12
  • Java設(shè)計模式之代理模式詳細解讀

    Java設(shè)計模式之代理模式詳細解讀

    這篇文章主要介紹了Java設(shè)計模式的代理模式,文中有非常詳細的代碼示例,對正在學習Java設(shè)計模式的小伙伴有很大的幫助,感興趣的小伙伴可以參考一下
    2021-08-08
  • Spring Boot項目搭建的兩種方式

    Spring Boot項目搭建的兩種方式

    springboot簡單快捷方便的優(yōu)點深受用戶喜愛,springboot開發(fā)環(huán)境搭建過程是每個開發(fā)者必須要做的工作,今天小編寫的一篇教程關(guān)于Spring Boot項目搭建方法,通過兩種方式給大家介紹的非常詳細,需要的朋友參考下吧
    2021-06-06
  • IDEA中Services欄不顯示的解決方案小結(jié)

    IDEA中Services欄不顯示的解決方案小結(jié)

    正常編譯完一個SpringBoot或者SringCloud項目之后,Services都會顯示出你有哪些服務(wù),如果沒有services欄怎么解決呢?下面小編給大家分享IDEA中Services欄不顯示的解決方案小結(jié),感興趣的朋友一起看看吧
    2021-08-08
  • Java實現(xiàn)HTTPS連接的示例代碼

    Java實現(xiàn)HTTPS連接的示例代碼

    現(xiàn)在的網(wǎng)絡(luò)世界,安全性是大家都非常關(guān)注的問題,特別是對于咱們這些程序員來說,所以,理解并實現(xiàn)HTTPS連接,對于保護咱們的數(shù)據(jù)安全是極其重要的,下面我們就來學習一下在Java中如何實現(xiàn)HTTPS連接吧
    2023-12-12
  • Spring Boot(三)之找回熟悉的Controller,Service

    Spring Boot(三)之找回熟悉的Controller,Service

    這篇文章主要介紹了Spring Boot(三)之找回熟悉的Controller,Service,需要的朋友可以參考下
    2017-04-04
  • 解析Java的InputStream類并借助其讀取ppt文件

    解析Java的InputStream類并借助其讀取ppt文件

    這篇文章主要介紹了Java的InputStream類并借助其讀取ppt文件,講到了InputStream類中一些常用的方法的問題,需要的朋友可以參考下
    2015-11-11
  • Java AES256加密解密示例代碼

    Java AES256加密解密示例代碼

    這篇文章主要介紹了Java AES256加密解密示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10

最新評論