java - 我想连接到java上的db,但是有一些错误
问题描述
package dbb;
import java.sql.*;
public class test {
public static void main (String[] args) {
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String pass = "1234";
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver Searched");
conn = DriverManager.getConnection(url, user, pass);
System.out.println("Connection Succeed" + conn);
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Searched");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
显示已经搜索到Driver,但连接仍然失败。
我该如何解决这个错误?
解决方案
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String pass = "Admin@123";
java.sql.Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver Searched");
conn = DriverManager.getConnection(url, user, pass);
System.out.println("Connection Succeed" + conn);
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Searched");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
它在我的系统中运行良好mysql-connector-java-5.1.6jar
。可能是MySql
驱动程序的问题。
您可以尝试以下方法:您可能需要在 jdbc url 中明确指定时区。:
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
推荐阅读
- c++ - 如果 Mat 对象不在数据变量中,它会将其数据存储在哪里?
- c# - MailKit C# SmtpClient.Connect() 到 smtp.Office365.com 抛出异常:“根据验证程序,远程证书无效。”
- c++ - c++成员函数模板特化类非类型模板参数
- java - 我需要在不输入任何特殊值的情况下终止输入序列,只需按空输入
- javascript - 如何将输入值添加到计数器值?
- julia - 通过回收向矩阵添加行或列
- javascript - 无法在 Firestore 中使用 arrayRemove。使用无效数据调用的函数 DocumentReference.update()
- activecollab - 在 ActiveCollab UI 中生成 API 密钥
- automation - IFTTT Webhook 未触发
- rxjs - 如何将 combineLatest 结果与 switchMap 值一起返回?