1. 程式人生 > >使用JDBC連線資料庫遇到的問題,以及查詢到的解決方法

使用JDBC連線資料庫遇到的問題,以及查詢到的解決方法

JDBC(Java Data Base Connectivity,java資料庫連線)是一種用於執行SQL語句的Java API,可以為多種關係資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDBC提供了一種基準,據此可以構建更高階的工具和介面,使資料庫開發人員能夠編寫資料庫應用程式,同時,JDBC也是個商標名。

JDBC訪問資料庫的步驟:

1.載入JDBC驅動類

2.使用DriverManager類獲取資料庫的連線

3.使用該連線建立Statement介面的例項,並將SQL語句傳遞給它所連線的資料庫,並返回型別為ResultSet的物件,它包含執行SQL查詢的結果

4.處理結果

資料庫連線的時候出現錯誤如下圖


這種異常的出現大致上有下面幾種:

1.IP錯誤。

在設定URL時錯誤,例如:jdbc:oracle:thin:@192.168.0.36:1521:sharp
資料庫伺服器不正確:ping 伺服器IP是否正確。不正確,將URL更改為正確
埠號錯誤:一般不會錯誤。
進行一下操作:在DOS上鍵入sqlplus,檢查oracle是否開啟
一卻正常,執行下面第2步。

2.防火牆
如果機器上安裝有放火牆,可能是伺服器埠號遮蔽而造成的。關閉防火牆後,嘗試重新連線。
仍然不行,執行第3步。

3.資料庫監聽未啟動 修改PC上登錄檔中的ImagePath值。
我下面以現在主流的資料庫ORACLE為例
重新手動啟動資料庫監聽:
1:開始 → 執行→ 輸入CMD→  進入DOS命令提示介面
d:>lsnrctl
LSNRCTL> status
或者
LSNRCTL> start
如果是類似圖片中的資訊

恭喜,你的問題已經查找出來,是資料庫監聽器沒未啟動而造成的。
以下是手動啟動資料庫的方法:
在執行處執行regedit進入登錄檔到
開始 →執行→ regedit
按下面路徑
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome90TNSListener
找到OracleOraHome90TNSListener(我用的是Oracle9i 其他的版本的應該是OracleOraHomexxxTNSListener)

 找到之後你會發現ImagePath關鍵值不存在了,建立它:(存在的話,點選修改,修改方法在下文有介紹)
右鍵單擊,彈出選單選擇新鍵(N)→字串值(S)

 
將其命名為ImagePath
選中ImagePath點右鍵,選中修改:

在值中輸入你的Oracle安裝目錄\ora90(其他本對應的是oraxxx目錄)\bin\tnslsnr

如果是ORACLE 10G則安裝目錄為F:\oracle\product\10.1.0\Db_2\BIN\tnslsnr

確定後退出注冊表:
再在DOS命令下鍵入start
如果出現下面畫面,恭喜你,監聽器啟動成功:

關閉DOS,啟動你的程式進行測試,應該恢復正常了。
以上就是3中常見的引發The Network Adapter could not establish the connection 異常的原因,發生異常的時候最好一步步的進行排查錯誤,如果還是沒找到錯誤的話,請發我郵箱聯絡我,大家一起研究共同進步。


相關推薦

JDBC連線資料庫工具類以及測試

1. 資料庫連線工具程式碼 package com.zzm.db; import java.sql.*; /** * Created by ming on 2017/6/13. */ public class DBUtil { //載入驅動 private f

jdbc連線資料庫基本步驟以及錯誤總結

連線資料庫的基本步驟:import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; impor

jdbc連線mysql時報時區設定錯誤解決方法

參考https://blog.csdn.net/zqb765720343/article/details/80076020,感謝分享。 jdbc連線mysql時報時區設定錯誤,提示相差8小時。 1、在mysql命令列模式下修改時區,經過嘗試發現,這種方法重啟mysql後就失效了,不是永久的。

Navicat for mysql遠端連線資料庫詳解(1130錯誤解決方法)

用Navicat for mysql連線資料庫測試下連線 如果出現1130錯誤錯誤程式碼是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server論壇上有些朋友說

JDBC連線MySQL5.7.18失敗的解決方法

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoade

連線資料庫的SID錯誤的解決方法

Oracle報錯:Listener refused the connection with following error:ORA-12505,TNS:listener...... 這是連線資料庫的SID錯誤,解決方法: 1.知道你的SID名:可以再登錄檔中查詢,也可以通過

Oracle sql developer 連線資料庫顯示IO錯誤的解決方法

1.oracle sql developer和你資料庫伺服器是在同一臺機器麼?如果是,主機名上寫localhost就是正確的,如果不是,請填寫資料庫伺服器的ip地址或者是能夠解析的主機名 2.你安裝的資料庫的名字是app嗎? 在資料庫伺服器的命令列上執行語句看一下監聽:ls

使用JDBC連線資料庫遇到的問題以及查詢到的解決方法

JDBC(Java Data Base Connectivity,java資料庫連線)是一種用於執行SQL語句的Java API,可以為多種關係資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDBC提供了一種基準,據此可以構建更高階的工具和介面,使資料庫開

jdbc連線資料庫查詢條件為漢字查詢無結果解決辦法

問題描述: select * from student where name='張三' 在資料庫中輸入該查詢語句時,有結果集。 用jdbc連線資料庫,在Java程式中執行時查詢不到結果集。 解決方法: 該問題為編碼問題,需要進行引數轉碼,在連線中新增:useUnicode

jdbc連線資料庫查詢呼叫儲存方法

package SQL; import java.awt.event.ActionEvent; import java.sql.CallableStatement; import java.sql.DriverManager; import java.sql.Prepared

關於時間的整理以及JDBC連線資料庫的步驟

整理自己的零碎時間是十分有用的,在面對即將畢業的自己又是半路入門的非本專業甚至是一點職業關聯都沒有的。 花了一點時間將自己每天需要完成的東西,以及時間的劃分做了一張清單。算了算還有76天時間,才學完基礎沒多少,壓力十分的大。 越算自己的時間越覺得自己的時間好像很

IDEA連線mysql教程以及出現java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的解決辦法

一、程式碼 先貼出相應的程式碼 import java.sql.*; public class GetConnection { public static void main(String[] args){ try{ //呼叫

解決多執行緒程式使用JDBC連線資料庫的異常

多執行緒就帶來了高併發,短時間內大量的請求發向資料庫,在執行過程中出現了以下錯誤: ** BEGIN NESTED EXCEPTION ** com.mysql.jdbc.CommunicationsException MESSAGE: Communi

Linux下查詢80埠被哪些IP訪問連線以及查詢異常連線IP地址可以封掉異常IP

netstat -tun 列出的是所有連線 netstat -tun | grep ":80" Linux下查詢80埠被哪些IP訪問連線。 應該就能達到你的要求查詢IP連線訪問彙總,如發現異常IP則可以封掉異常的IP訪問地址。netstat -tn 2>/dev/n

JDBC連線資料庫查詢

/* JDBC工作過程: 1.載入驅動,建立連線(載入驅動是靠DriverManager,並且通過DriverManager獲取連線Connection) 2.建立語句物件(通過Connection建立Statement用於執行sql語句) 3.執行SQL語句 4.處理結

【J2EE】【2.JDBCJDBC連線資料庫(MariaDBMysql)(繼續之前jee的登陸例子)

零,名詞解釋 JDBC JDBC(Java Data Base Connectivity,java資料庫連線)是一種用於執行SQL語句的Java API,可以為多種關係資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDBC提供了一種基準,據此可以構建更高階的

JavaSE__原始的JDBC連線資料庫,查詢結果集 (基礎篇)

展示原生的JDBC連線資料庫,以及存在的問題。 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql

jdbc技術連線資料庫要匯入相應驅動程式的jar包

比如,我用jdbc技術連線mysql資料庫時,要匯入jdbc廠商提供的mysql的驅動程式包中的jar包。具體步驟如下: 在專案目錄,下新建一個資料夾,命名為lib 在網上下載mysql-connector-java-5.1.45.jar.(或者更高的版本),複製到lib

JDBC連線資料庫查詢)的步驟

簡單的應用例子 先匯入jar包 程式碼:   import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLExcept

Django 分頁查詢並返回jsons數據中文亂碼解決方法

返回json 類型 模型 數據流 class stringio self option sci Django 分頁查詢並返回jsons數據,中文亂碼解決方法 一、引子 Django 分頁查詢並返回 json ,需要將返回的 queryset 序列化, demo 如下: #