JDBC(Java DataBase Connectivity),即Java数据库连接。简而言之,就是通过Java语言来操作数据库。
我们可以把JDBC理解成是官方定义的一套操作所有关系型数据库的规则,规则即接口。
也就是说,官方定义了一套操作所有关系型数据库的接口,然后让各个数据厂商(Mysql、Oracle等)用实现类去实现这套接口,再把这些实现类打包(数据驱动jar包),并提供数据驱动jar包给我们使用。
我们可以使用这套JDBC接口进行编程,但是真正执行的代码是驱动jar包中的实现类。
为什么?因为JDBC是通过接口来调用方法的,当你导入了驱动jar包(实现类)后,那调用的方法肯定是实现类里面的方法。
一、Mysql驱动包下载
想要通过JDBC连接并操作Mysql数据库,我们需要下载一个Mysql数据库驱动jar包。
两种下载方式(点击链接可直接前往下载)
方式一:官网下载
方式二:Maven仓库下载
下载后的jar包是这样的(我的版本是8.0.15):
windows系统:
mysql-connector-java-8.0.15-bin.jar
Linux、Mac系统:
mysql-connector-java-8.0.15.jar
二、JDBC实现步骤
前提: 创建一个Java项目,在项目中新建一个libs目录(为了方便管理jar包,需要把jar包放在此目录下),在src目录下建一个包,包下再建一个类。
最终的目录结构是这样的:
注:把下载的jar包拷贝到项目的libs下,别忘了点击libs→右键→Add as Library(这才是真正导入jar包)。
具体步骤:
1、导入驱动jar包 2、注册驱动 3、获取数据库的连接对象 4、定义sql语句 5、获取执行sql语句的对象 6、执行sql并接收返回结果 7、处理结果 8、释放资源
实例:
package cn.tkr.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JDBCDemo {
public static void main(String[] args) throws Exception {
//下面方法有不同的异常,我直接抛出一个大的异常
//1、导入驱动jar包
//2、注册驱动
Class.forName("com.mysql.jdbc.Driver");
//3、获取数据库的连接对象
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sys", "root", "123456789");
//4、定义sql语句
String sql = "update Student set score = 99 where id = '10003' ";
//5、获取执行sql语句的对象
Statement stat = con.createStatement();
//6、执行sql并接收返回结果
int count = stat.executeUpdate(sql);
//7、处理结果
System.out.println(count);
//8、释放资源
stat.close();
con.close();
}
}
运行结果:
代码分析:
注册驱动是为了让程序知道,我们用的是哪个版本、哪个驱动包。
获取数据库的连接对象Connection
,我们可以把这个对象理解成是Java代码与数据库之间的桥梁,将两者连接起来。
我们定义的sql语句,将来会通过一些操作发送给数据库执行。从而达到Java代码操作数据库的目的。
由于Connection
是连接对象,无法直接执行。所以我们要通过con.createStatement()
来获取执行sql语句的对象Statement
通过Statement
对象执行sql后,会返回一个int类型的数值,这个数值指的就是影响数据库表的行数。
最后,要对返回的结果进行处理,并释放资源