麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Java > 正文

JDBC 程序的常見錯誤及調試方法

2019-11-26 16:19:31
字體:
來源:轉載
供稿:網友
數據庫:MySQL

在編寫應用的時候,為了調試程序方便,可以在異常處理代碼中把異常信息顯示出來,這樣可以根據錯誤提示調試代碼。異常處理代碼通常可以寫成這樣:
try{

}catch(Exception e){
System.out.println(e.toString());
}
下面是一些常見的錯誤信息:
(1)驅動程序不存在
提示的錯誤信息如下:
java.lang.ClassNotFoundException: com.mysql.jdbc.Drive
后半部分是您在程序中寫的驅動程序的名字。
解決方法:仔細檢查類名是否寫錯,如果類名沒有寫錯,則是驅動程序所在的壓縮包沒有引入工程,想辦法引入。
(2)URL寫錯
提示的錯誤信息如下:
java.sql.SQLException: No suitable driver
解決方法:仔細檢查URL的格式是否正確,不同數據庫的URL格式不同。
(3)主機IP地址不正確或者網絡不通
提示的錯誤信息如下:
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地址是否正確,網絡是否有問題。
(4)端口錯誤或者數據庫服務器沒有啟動
提示的錯誤信息如下:
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 **
解決方法:查看端口是否正確,數據庫服務器是否啟動。
(5)數據庫名字不正確
提示的錯誤信息如下:
java.sql.SQLException: Unknown database 'test2'
解決方法:查看數據庫是否存在。
(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'
解決方案:仔細查看數據庫表中的列名。
(9)處理結果集的時候,要獲取的列的序號大于列數,或者小于0
提示的錯誤信息如下:
java.sql.SQLException: Column Index out of range, 4 > 3.
這個錯誤產生的背景是:數據庫表中只有3列,而在取信息的時候使用了rs.getString(4),尤其是在使用循環處理的時候容易犯這樣的錯誤。
(10)執行insert語句的時候,表中的列數與插入語句中的不相同
提示的錯誤信息如下:
java.sql.SQLException: Column count doesn't match value count at row 1
該錯誤產生的背景是:數據庫表中有3列,而插入的時候給了4個值,SQL語句如下:
insert into student values('0011323','李旭',22,99)。
(11)執行insert語句的時候,主鍵重復。
提示的錯誤信息如下:
java.sql.SQLException: Duplicate entry '0011323' for key 1
該錯誤產生的背景是:1條SQL語句連續執行了兩遍,第二遍就出錯了。
(12)執行insert語句的時候,值過長
提示的錯誤信息如下:
java.sql.SQLException: Data too long for column 'id' at row 1
解決方案,查看數據庫中列的長度。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 色网站综合 | 日本高清一级片 | 激情av在线 | 午夜小影院 | 97超级碰碰人国产在线观看 | 天天色综合6 | 日本一区二区三区视频在线 | 黄色av网站免费 | 免费观看黄色一级视频 | 欧美伦理一区二区 | 日韩色视频在线观看 | 精品久久久久久久久久久aⅴ | 色屁屁xxxxⅹ免费视频 | 欧美一级片一区 | 精品国产乱码久久久久久久 | 久久亚洲精品久久国产一区二区 | 亚洲乱操 | 欧美18xxxx| 亚洲福利在线免费观看 | 亚洲资源在线 | 欧美高清在线精品一区二区不卡 | 毛片视频网址 | 久久亚洲精品国产一区 | 欧美激情性色生活片在线观看 | 鲁人人人鲁人人鲁精品 | 狠狠干五月天 | 2019天天干夜夜操 | 毛片在线视频观看 | 99re久久最新地址获取 | 欧美精品一区二区三区在线播放 | 色天使中文字幕 | 国产chinesehd精品91 | 亚洲一区二区免费 | a免费看| 一区二区三区在线观看国产 | 中文字幕在线网站 | 欧美四级在线观看 | 成人在线视频免费播放 | 国产激情网 | 亚洲人成网在线观看 | 亚洲91网 |