java中mysql连接的问题:没有合适的驱动程序

时间:2014-05-20 08:19:04

标签: java mysql jdbc

我正在使用Java建立一个使用Mysql连接的小程序但是我遇到了jdbc驱动程序的一些问题。我安装了Java EE和Java SE,但我仍然得到消息,jdbc:mysql://localhost:3307/test没有合适的驱动程序。有人可以向我解释我做错了什么。

代码:

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);
    }  
}

外部连接类:

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());           
        }       
    }   

}

6 个答案:

答案 0 :(得分:2)

  1. 首先您需要更正您的驱动程序

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

  2. 然后检查您添加了mysql连接器jar文件

  3. 之后,您需要确保将jar文件添加到类路径中。

  4. 纠正第一个,然后转到第二个,然后转到第三个

答案 1 :(得分:1)

我在这里可以看到一个问题。您正在使用Oracle驱动程序在MySQL数据库上执行操作。

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

试试这个。

如果您使用的是默认端口,则无需指定端口号。jdbc:mysql://localhost/dbName应该

答案 2 :(得分:1)

如果您尝试使用mysql,那么该类应该是com.mysql.jdbc.Driver,并且您应该在类路径中使用mysql jdbc连接jar文件。

使用

初始化驱动程序
Class.forName("com.mysql.jdbc.Driver").newInstance();

答案 3 :(得分:1)

您正试图通过oracle驱动程序访问mysql数据库,因此您收到错误

尝试使用

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

答案 4 :(得分:1)

试试这个

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

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

答案 5 :(得分:1)

1)正如上面的答案中所指出的,对于MySql,你应该使用

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

2)确保你在classpath中有jar。 你可以从mvnrepo MVNREPO

下载jar

3)MySql的端口是3306?

快速google for JAVA + MYSQL给了我this tutorial