相信在连接最新数据库时候,各位xinshou都或多或少遇到些问题,那么针对我遇到的问题给各位分享一下的我的解决方法。(其实也都是问别人与上网搜索的综合处理)
首先报错 java.lang.ClassNotFoundException
于是我将驱动名com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver,但是程序依旧报错,后来发现原来是空格的问题导致,于是删除空格,但是又出现了以下的错误
于是出现了serverTime异常,于是我参考了一下这位博主的方法,附博主链接:https://blog.csdn.net/w_rcss/article/details/84979007
在具体的数据库名后面加上?serverTimezone=GMT%2B8
虽然时区问题解决了,但是又出现新的问题
如下:
connection的驱动找不到,后来才发现是connection的包不是sql的包,而是其他的包,所以导入sql.Connection
最终终于操作成功,附源码:(仅供参考)
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
public class JDBCDemo {
final static String URL ="jdbc:mysql://localhost:33066/db1?serverTimezone=GMT%2B8";
final static String USERNAME="root";
final static String PWD="password";
public static void update() {//增添改查
Connection connection=null;
Statement stmt=null;
try {
// a.导入驱动加载具体的驱动类
Class.forName("com.mysql.cj.jdbc.Driver");//全类名
//b、与数据库建立连接
connection = DriverManager.getConnection(URL, USERNAME, PWD);
//c、发送sql执行(增删改)
stmt=((java.sql.Connection) connection).createStatement();
String sql = "insert into student values(1,'zs',23,'s1')";
// String sql = "update student set STUNAME='ls' where stuno=1";
//String sql=""
int count=stmt.executeUpdate(sql);
if(count>0) {
System.out.println("操作成功!");
}
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}catch(Exception e) {
e.printStackTrace();
}
finally {
try {
if(stmt!=null) stmt.close();
if(connection!=null) connection.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
update();
}
}