2014-05-20 72 views
-3

我正在Java中使用Mysql連接但使用jdbc驅動程序時遇到一些問題的小程序。我安裝了Java EE和Java SE,但我仍然收到消息,指出jdbc:mysql://localhost:3307/test沒有合適的驅動程序。有人可以向我解釋我做錯了什麼。與java連接在java中的問題:沒有合適的驅動程序

代碼:

public class Mysql_Connection_2 { 


    /** 
    * @param args the command line arguments 
    */ 
    static String query = "select count(*) from stock";  

    public static void main(String[] args) { 

     try {   
      Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
     } 
     catch (ClassNotFoundException | InstantiationException | IllegalAccessException ex) { 
      Logger.getLogger(MysqlConnection.class.getName()).log(Level.SEVERE, null, ex); 
     }   
     MysqlConnection.dbConnection(query); 
    } 
} 

EXTERN Connection類:

public class MysqlConnection { 

    private static final String dbURL = "jdbc:mysql://localhost:3307/test"; 
    private static final String dbuname = "root"; 
    private static final String dbpass = "usbw"; 

    static Connection dbcon = null; 
    static Statement stmt = null; 
    static ResultSet rs = null; 



    public static void dbConnection (String query){ 

     try{   
      //getting database connection to MySQL server 
      dbcon = DriverManager.getConnection(dbURL, dbuname, dbpass); 

      //getting PreparedStatment to execute query 
      stmt = dbcon.prepareStatement(query); 

      //Resultset returned by query 
      rs = stmt.executeQuery(query); 

      while(rs.next()) { 
       int count = rs.getInt(1); 
       System.out.println("count of stock : " + count); 
      } 
     } 
     catch(SQLException ex){ 
      System.out.println(ex.getMessage());   
     }  
    } 

} 
+0

你加入Oracle驅動程序jar文件 –

+1

能否請您解釋一下在你的問題Oracle連接和MySQL連接的意義是什麼? – NewUser

+0

是你的類路徑上的jar嗎? – hd1

回答

1

1)如上回答指出,對於MySQL中,你應該使用

Class.forName("com.mysql.jdbc.Driver"); 

2)請確保您有罐子在classpath中。 你可以從mvnrepo下載jar MVNREPO

3)MySql的端口是3306?

和快速谷歌的JAVA + MYSQL給我this tutorial

+0

'Class.forName(「com.mysql.jdbc.Driver」);'只要您使用JDBC 4.0驅動程序,從Java 6/JDBC 4.0開始就沒有必要。 –

1

我可以在這裏看到一個問題。您正在使用Oracle驅動程序在MySQL數據庫上執行操作。

try {   
    Class.forName("com.mysql.jdbc.Driver"); 
}   

試試這個。

如果您使用默認端口,則不需要指定端口號。 jdbc:mysql://localhost/dbName應該這樣做

+0

那我該用什麼? –

+0

我試過這個,但我得到一個ClassNotFound異常 –

+0

@Dibya,你已經通過數據庫的網址,而不是驅動程序類。 –

1

如果你正在嘗試使用mysql,那麼這個類應該是com.mysql.jdbc.Driver,你應該在類路徑中有mysql jdbc連接jar文件。

初始化使用

Class.forName("com.mysql.jdbc.Driver").newInstance(); 
1

你試圖通過Oracle驅動程序來訪問MySQL數據庫,所以你得到錯誤

嘗試使用驅動程序

Class.forName("com.mysql.jdbc.Driver"); 
1

試試這個

try {   
Class.forName("com.mysql.jdbc.Driver"); 
}  

private static final String dbURL = "jdbc:mysql://localhost:3306/test"; 
+2

恆定變量名稱全部大寫。嘗試使用DB_URL .. :) – NewUser

2
  1. 首先,你需要改正你的驅動程序

    Class.forName("com.mysql.jdbc.Driver");

  2. 然後選中之後加入MySQL的連接器jar文件

  3. ,你需要確保jar文件被添加到你的類路徑或不。

正確的第一個,到第二,然後第三

+0

謝謝@Prasad我的壞..:D – ambarox

+0

我認爲順序應該是2,3然後1.任何人要做的第一步是確保他們有jar。然後,他們將在加入鍵盤之前加入課程路徑。 – NewUser

+0

其實1是基本錯誤。你必須先糾正它。然後仍然數據庫不連接然後去2和3多數民衆贊成在我的想法。 – ambarox

相關問題