在系统学习了数据库之后,就要开始应用数据库了,那么首先要学习的就是JDBC编程了。
一、入门程序
编写JDBC代码一共分五步
1、注册驱动
2、获取连接
3、获取SQL语句执行对象
4、执行SQL
5、释放资源
首先要为 pom 文件引入依赖
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.9.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version> <!-- 使用最新稳定版 -->
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</dependency>
</dependencies>
以下是代码:
package com.itheima;
import org.junit.jupiter.api.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCTest {
@Test
public void testUpdate() throws Exception{
//1、注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2、获取数据库连接
String url = "jdbc:mysql://localhost:3306/web01";
String username = "root";
String password = "Jerry4736";
Connection connection = DriverManager.getConnection(url,username,password);
//3、获取SQL语句执行对象
Statement statement = connection.createStatement();
//4、执行SQL
int a = statement.executeUpdate("update user set age = 20 where id = 1");
System.out.println(a);
//5、释放资源
connection.close();
statement.close();
}
}
二、报错剖析
这里我捣鼓了两天才运行成功,实在是太麻烦了。一开始idea的pom文件警告我的 mysql-connector-j 版本号太低容易有安全漏洞,然后我一直升级版本号,还把依赖项改成了mysql-connector-java。后来还是不管用,问了ChatGPT说我的权限有问题,改了半天权限,还在idea上配置了MySQL数据库。虽然多次下载失败和密码用户名错误,但还是连接成功了,后来实在搞不懂了睡了一觉第二天起来弄,在多次改版本号和权限仍然报错后我下载了课程里所说的DataGrip,从而舍弃了我的NaviCat图形化界面,然而还是不管用。最后我才发现自己的Java代码中获取数据库连接那一步的用户名密码是错的,改正以后果然运行成功了。
以下是这个idea程序的报错内容:
第一个:
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
第二个:
java.sql.SQLException: Plugin 'mysql_native_password' is not loaded
数据库报错内容:
[HY000][1524] Plugin 'mysql_native_password' is not loaded
还有诸多报错细节就不详细赘述了,编译成功的那一刻真的很开心!
效果:age修改为20