从 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();
我有一个用 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();