黑马的Web视频中mysql版本太老,因此我看的是马士兵的,其中Navicat确实方便。
后来重新转到黑马看JDBC的时候,由于我下载的mysql版本为8.0以上的。
链接的时候报了3个大错,在此展示一下报错处理:
1.Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver cl
这是报错中的其中一个大错,原因是注册驱动的代码需要更新。
黑马给的jar包是5.0的,对于8.0以上的mysql来说太老了,由此我下载了一个8.0的jar包,链接将在评论区给出。
add之后要记得删除原来旧的jar包
处理:
Class.forName("com.mysql.jdbc.Driver");
变为:
Class.forName("com.mysql.cj.jdbc.Driver");
2.Sat Jan 15 04:51:35 CST 2022 WARN: Establishing SSL connection without serve
3.Cannot load connection class because of underlying exception: com.mysql.cj.c
由于第2个和第3个错误在一条语句中解决,因此放在一起来展示
原本的获取连接对象代码变为如下:
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mytestdb?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT", "root", "zhu1534224450");
讲解一下,不要对着全抄,mytestdb是我自己数据库的名字,大家写自己的即可。
"root", "zhu1534224450",分别为我mysql的账号和密码,用自己的。
以下为最终修改后的:
定义sql操作用的表是我自己的,因此即使复制也运行不了,只做参考。
package Web.JDBC.jabc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JDBCDemo1 {
//复制到IDEA中,add as library
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mytestdb?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT", "root", "zhu1534224450");
//定义
String sql = "update t_student2 set age = 30 where sno = 1";
//获取执行对象
Statement stmt = conn.createStatement();
int count = stmt.executeUpdate(sql);
System.out.println(count);
//释放资源
stmt.close();
conn.close();
}
}