使用DriverManager在WAMP上将Java连接到MySQL

时间:2016-05-25 14:58:24

标签: java mysql database-connection wamp

我正在尝试连接到计算机运行的同一设备上的WAMP服务器上的数据库。以下是zetcode教程中的代码。除了SQL登录详细信息之外,我几乎完全复制了它。我收到错误,它显示在代码下方。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.sun.corba.se.impl.util.Version;

public class TestDb {

public static void main(String[] args) {
    Connection con = null;
    Statement st = null;
    ResultSet rs = null;
    String url = "jdbc:mysql://localhost:3306/mltest";
    String user = "mlcomponents";
    String password = "color12";
    try {
        con = DriverManager.getConnection(url, user, password);
        st = con.createStatement();
        rs = st.executeQuery("SELECT VERSION()");

        if (rs.next()) {
            System.out.println(rs.getString(1));
        }

    } catch (SQLException ex) {
        Logger lgr = Logger.getLogger(Version.class.getName());
        lgr.log(Level.SEVERE, ex.getMessage(), ex);

    } finally {
        try {
            if (rs != null) {
                rs.close();
            }
            if (st != null) {
                st.close();
            }
            if (con != null) {
                con.close();
            }

        } catch (SQLException ex) {
            Logger lgr = Logger.getLogger(Version.class.getName());
            lgr.log(Level.WARNING, ex.getMessage(), ex);
        }
    }
 }
}

我收到的错误讯息:

May 25, 2016 3:51:28 PM TestDb main
SEVERE: No suitable driver found for jdbc:mysql://localhost:3306/mltest
java.sql.SQLException: No suitable driver found for   jdbc:mysql://localhost:3306/mltest
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at TestDb.main(TestDb.java:21)

2 个答案:

答案 0 :(得分:1)

我之前遇到过同样的问题,请先尝试先运行:

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

这将使驱动程序自行注册。

检查有关Drive Manager的更多信息,MySQL Connector

从上一个链接:

在应用程序服务器之外使用JDBC时,DriverManager类管理连接的建立。 指定DriverManager尝试与哪些JDBC驱动程序建立连接。最简单的方法是在实现java.sql.Driver接口的类上使用Class.forName()。

编辑:我正在添加一个名为MySQLConnector的java类,它可以根据你的第二个问题连接到mysql(在localhost中)。看看我如何导入java.sql.DriverManager

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MySQLConnector {
    //JDBC driver name and database URL
    private String JDBC_DRIVER;  
    private String DB_URL;
    //Database credentials
    private String USER;
    private String PASS;
    private Connection conn;

    public MySQLConnector(){
        JDBC_DRIVER = "com.mysql.jdbc.Driver";
        DB_URL = "jdbc:mysql://localhost/db_name?useUnicode=yes&characterEncoding=UTF-8";
        USER = "root";
        PASS = "123";
        conn = null;
    }
    public void openConnection(){
        try{
            //Register JDBC driver
            Class.forName(JDBC_DRIVER);         
            //Open a connection
            System.out.print("Connecting to a selected database... ");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            System.out.println("Success!");     
        }catch(Exception e){
            //Handle errors for JDBC
            e.printStackTrace();
        }
    }
    public void closeConnection(){
        try{
            if(conn!=null)
            conn.close();
        }catch(SQLException se){
            se.printStackTrace();
        }
        System.out.println("Connection closed");
    }
    public Connection getConnection(){
        return conn;
    }
}

答案 1 :(得分:1)

首先在您的电脑上启动Wamp,您不需要另外一个类来建立连接,使用此代码并提供您的wamp登录的用户名和密码,此代码仅用于建立连接,自己添加上述功能

insert into caliper.log_per_day ( timeStampValue,dateValue ) values ('2015-12-30 16:10:31','2015-12-30');