如何在Java中连接MySQL数据库?
当我尝试时,我得到
java.sql.SQLException: No suitable driver found for jdbc:mysql://database/table
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
Or
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Or
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
HOW
设置驱动程序以运行快速示例
1. Go to https://dev.mysql.com/downloads/connector/j/, get the latest version of Connector/J
2. Remember to set the classpath to include the path of the connector jar file.
If we don't set it correctly, below errors can occur:
No suitable driver found for jdbc:mysql://127.0.0.1:3306/msystem_development
java.lang.ClassNotFoundException: com.mysql.jdbc:Driver
要设置CLASSPATH
方法1:设置CLASSPATH变量。
export CLASSPATH=".:mysql-connector-java-VERSION.jar"
java MyClassFile
在上面的命令中,我已经将CLASSPATH设置为当前文件夹和mysql-connector-java-VERSION.jar文件。因此,当执行java MyClassFile命令时,java应用程序启动器将尝试加载CLASSPATH中的所有java类。
它发现Drive class => BOOM错误消失了。
方法2:
java -cp .:mysql-connector-java-VERSION.jar MyClassFile
注意:forname(“com.mysql.jdbc.Driver”);目前已弃用2019年4月1日。
希望这能帮助到一些人!
DriverManager是一种相当古老的做事方式。更好的方法是获取一个数据源,或者通过查找一个你的应用服务器容器已经为你配置的数据源:
Context context = new InitialContext();
DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/myDB");
或者直接从数据库驱动程序实例化和配置一个:
MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUser("scott");
dataSource.setPassword("tiger");
dataSource.setServerName("myDBHost.example.org");
然后从中获取连接,同上:
Connection conn = dataSource.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT ID FROM USERS");
...
rs.close();
stmt.close();
conn.close();
你需要在你的类路径中有mysql连接器jar。
在Java中,JDBC API使一切与数据库。我们可以使用JDBC编写Java应用程序
1. 发送查询或更新SQL到DB(任何关系数据库)
2. 从DB中检索和处理结果
通过以下三个步骤,我们可以从任何数据库中检索数据
Connection con = DriverManager.getConnection(
"jdbc:myDriver:DatabaseName",
dBuserName,
dBuserPassword);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}