2012-07-08 26 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将在您退出之前为您打印堆栈跟踪。

相关问题