【问题标题】:Connect Java to MySQL on WAMP using DriverManager使用 DriverManager 将 Java 连接到 WAMP 上的 MySQL
【发布时间】:2016-09-23 06:42:17
【问题描述】:

我正在尝试连接到计算机正在运行的同一设备上的 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)

【问题讨论】:

    标签: java mysql database-connection wamp


    【解决方案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;
        }
    }
    

    【讨论】:

    • 嘿,我现在遇到了一个找不到类的异常,我已将 .jar 文件从网站的 zip 文件夹中放到了 java 类路径指向的文件夹中,我得到了这个异常: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    • @bloopiebloopie 你使用像eclipse这样的IDE吗?导入时出现错误?我无法解释 ClassNotFoundException 的所有情况,请看这里:stackoverflow.com/questions/17408769/… 我已经更新了我的问题,以便您可以看到 MySql 连接。
    • 嘿,我只能定期访问互联网,我现在将测试它,谢谢。我确实使用 eclips。
    • @bloopiebloopie 如果您仍然遇到同样的错误,请检查此link 它将节省一些时间来找出 jar 导入/ClassNotFoundException 出了什么问题
    • 感谢您的帮助,这些额外的链接很有效,我已经正确添加了 jar 文件。我将尝试您现在建议的其余代码。再次非常感谢。
    【解决方案2】:

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

    public class Jdbcdemo {
    
        public static void main(String[] args) {
           try
           {
               //loading the jdbc driver
                Class.forName("com.mysql.jdbc.Driver").newInstance();
               //get a connection to database
               Connection myConn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctry","your username","your password");
               //create a statement
               Statement stmt=myConn.createStatement();
               //execute sql query
               ResultSet rs=stmt.executeQuery("select * from employee");
               //process the result
               while(rs.next())
               {
                   System.out.println(rs.getString("name")+" = "+rs.getString(1));
               }          
           }
           catch(SQLException e)
           {
               System.out.println(e);   
           }
           catch(Exception e)
           {
               System.out.println(e);
           }
        }
    
    }
    

    【讨论】:

    • 嘿vibhor vaish,代码运行良好。我在连接到服务器和正确使用导入的 JAR 文件时遇到了一些问题,然后我得到了盛大。再次感谢您的代码。
    猜你喜欢
    • 2011-09-24
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多