2012-07-08 53 views
0
import java.sql.*; 

public class Connect 
{ 
    public static void main (String[] args) 
    { 
     Connection conn = null; 

     try 
     { 
      String userName = "root"; 
      String password = "password123!"; 
      String url = "jdbc:oracle:thin:@localhost:3306:procomport"; 
      //Class.forName ("oracle.jdbc.driver.OracleDriver"); 
      conn = DriverManager.getConnection(url, userName, password); 
       //Connection connection = DriverManager.getConnection(url , userName, password); 
      System.out.println ("Database connection established"); 
     } 
     catch (Exception e) 
     { 
      System.err.println ("Cannot connect to database server"); 
     } 
     finally 
     { 
      if (conn != null) 
      { 
       try 
       { 
        conn.close(); 
        System.out.println ("Database connection terminated"); 
       } 
       catch (Exception e) { /* ignore close errors */ } 
      } 
     } 
    } 
} 

這是我的代碼我有多個不同的數據庫,但它不會連接到它們中的任何一個這是什麼問題?我一直收到它無法連接到數據庫的錯誤。雖然我可以使用其他管理工具連接到它,但它是驅動程序問題?我如何能夠判斷我是否有必要的驅動程序?Java不會連接到數據庫無論是什麼驅動程序

+1

你得到了什麼確切的錯誤?打印出異常,最好還是打印異常的堆棧跟蹤。 – 2012-07-08 04:37:42

+0

你的類路徑中有「瘦」的驅動程序? – 2012-07-08 07:09:56

回答

0

你後:

System.err.println(); 

放置一個:

e.printStacktrace(); 

然後你會看到真正的錯誤消息。可能驅動程序類不在類路徑中。

希望這將幫助你

0
  1. 取消對該行Class.forName("oracle.jdbc.driver.OracleDriver");
  2. 請確保您有在Oracle中的dirver類路徑「oracle.jdbc.driver.OracleDriver
1

您所提供的代碼連接到該數據庫將不會連接到MySQL或Oracle,因爲它是連接到這兩者的混亂嘗試。

對於Oracle,代碼應該是這個樣子:

 String userName = "root"; 
     String password = "password123!"; 
     String url = "jdbc:oracle:thin:@localhost:1521:procomport"; 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     conn = DriverManager.getConnection(url, userName, password); 

(假設你有一個叫root對Oracle用戶和Oracle SID是procomport)。特別注意端口號的變化:MySQL通常使用3306,Oracle使用1521

對於MySQL的連接代碼應該是這樣的:

 String userName = "root"; 
     String password = "password123!"; 
     String url = "jdbc:mysql://localhost:3306/procomport"; 
     Class.forName("com.mysql.jdbc.Driver"); 
     conn = DriverManager.getConnection(url, userName, password); 

(假設你的MySQL數據庫被稱爲procomport)。請注意連接URL和驅動程序類名稱的不同樣式。

Oracle驅動程序通常位於名爲ojdbc6.jar的JAR文件中,而MySQL中的JAR名稱類似於mysql-connector-java-5.1.18-bin.jar

最後,當你喜歡寫東西

catch (Exception e) 
    { 
     System.err.println ("Cannot connect to database server"); 
    } 

你真的不幫助自己。 e這個例外幾乎肯定會包含數據庫連接代碼無法正常工作的原因,但是通過故意忽略它,你會讓自己更難以弄清楚什麼地方出了問題。

爲了跟你說實話,我會忍不住申報main方法throws Exception(加入這個到public static void main...行結束),然後你可以刪除無用的catch塊。如果拋出異常並且在main內未處理,則JVM將在您退出之前爲您打印堆棧跟蹤。

相關問題