从 JDBC 连接 MySql java

Connecting fo MySql from JDBC in java

我有一个用 java 编写的程序。此程序在 运行 从 dos 提示符引发驱动程序 class 未找到

 import java.sql.*;
 public class SimpleDb {
 public static void main(String[] args)throws SQLException,ClassNotFoundException 
 {

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

   Connection con = DriverManager.get connection("jdbc:mysql://host/db");  

   Statement sta = con.create statement();

    ResultSet rs = sta.executeQuery(query);


   con.close();

  }

}

请帮忙

您需要将 MySQL 连接器添加到您的项目中:http://dev.mysql.com/downloads/connector/j/

也不再需要 Class.forName,您应该使用 try-with-resources 来使用正确的异常处理和资源管理:

try (Connection conn = DriverManager.getConnection("...") {
    PreparedStatement ps = conn.prepareStatement("...");
    try (ResultSet rs = ps.executeQuery()) {
        /* Parse result */
    }
} catch (SQLException ex) {
    for (Throwable t : ex) {
        t.printStackTrace();
    }
}

com.mysql.jdbc.Driver 是 mysqljdbc.jar 中的 class 尽管 java 6 支持自动驱动程序发现以安全地显式加载驱动程序。 请在dos提示

中显示的class路径中指定合适的驱动程序
  java -cp .;lib/mysqljdbc.jar SimpleDb

您的代码有几处错误,首先请确保您的库中有 mysql-connector-java-5.0.8-bin.jar。将其添加到库中后,您会遇到另一个问题,即您没有 sql 用户名或密码 正确的做法是:

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

 Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {

        Class.forName("com.mysql.jdbc.Driver").newInstance();
        String connectionUrl = "jdbc:mysql://localhost:3306/db1";
        String connectionUser = "root";
        String connectionPassword = "password";
        conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword);
        stmt = conn.createStatement();
        rs = stmt.executeQuery("SELECT * FROM Laptop Where Owners = 'John'");
        while (rs.next()) {
            String Owners = rs.getString("Owners");
            String model = rs.getString("Model");
            String Manufacturer = rs.getString("Manufacturer");
            int Screen = rs.getInt("Screen");
            int Years = rs.getInt("Years");
            System.out.println(Owners + " " + model + " " + Manufacturer + " " + Screen + " " +Years);
        }
    } catch (Exception e) {
        e.printStackTrace();