Java鏈接Oracle
阿新 • • 發佈:2019-03-19
row result tns nec ive param for 自己 user
首先在Navicat裏面鏈接Oracle:
連接時老報錯:ORA-12505, TNS:listener does not currently know of SID given in connect descript....
一開始以為是listener的問題,嘗試了很多還是不行。解決步驟如下:
這個文件(在你的)
host改成你的IP
連接代碼:
package com.sql.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DBUtil { // 創建一個數據庫連接 public static Connection getConnection() { Connection connection = null; String USERNAMR = "ABC"; String PASSWORD = "*****";//自己的密碼 String DRVIER = "oracle.jdbc.OracleDriver"; String URL = "jdbc:ora:thin:@localhost:1521:ORCL"; try { System.out.println("嘗試輸出!"); Class.forName(DRVIER); System.out.println("馬佳慧無敵!"); connection = DriverManager.getConnection(URL, USERNAMR, PASSWORD); System.out.println("成功連接數據庫"); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } catch (SQLException e) { throw new RuntimeException(e); } return connection; } //關閉資源 public static void close(Statement state, Connection con) { if (state != null) { try { state.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (con != null) try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 關閉數據庫的連接對象,SQL語句對象,查詢結果集對象 * * @param rs * 結果集對象 * @param state * Statement對象 * @param con * Connection對象 */ public static void close(ResultSet rs, java.sql.Statement state, Connection con) { if (rs != null) try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (state != null) try { state.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (con != null) try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
註意的地方:那裏要寫ORCL。原因是數據庫服務器的名稱寫錯了:
完美解決:
Java鏈接Oracle