JDBC 复习

109 阅读2分钟

一、JDBC简介

​ JDBC(Java DataBase Connectivity),即Java数据库连接。

​ 简而言之,就是通过Java语言来操作数据库。

​ 我们可以把JDBC理解成是官方定义的一套操作所有关系型数据库的规则,规则即接口,都在这个包下 java.sql.*。

​ 也就是说,官方定义了一套操作所有关系型数据库的接口,然后让各个数据厂商(Mysql、Oracle等)用实现类去实现这套接口,再把这些实现类打包(数据驱动jar包),并提供数据驱动jar包给我们使用。我们可以使用这套JDBC接口进行编程,但是真正执行的代码是驱动jar包中的实现类。

​ 为什么?因为JDBC是通过接口来调用方法的,当你导入了驱动jar包(实现类)后,那调用的方法肯定是实现类里面的方法。

image.png

二、配置驱动

  1. 手动下载mysql-connector-java jar包并配置到lib
  2. 使用maven导入

三、操作数据库

1. 注册驱动

告诉java连接的是哪个数据库

// 1. 方法一
 DriverManager.registerDriver(new Driver());
// 2. 方法二 在加载Driver类的时候,会执行和第一中方法内容一样的静态代码块,只需要提供类名即可
 Class.forName("com.mysql.jdbc.Driver");

2. 获取连接

JVM进程和数据库之间的进程打开了(默认使用的unicode编码)

Connection connection = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8","root","654321");

3. 获取数据库操作对象

专门执行sql语句的对象

// 1
Statement statement = connection.createStatement();

// 2 这种防止sql注入问题
PreparedStatement preparedStatement = connection.prepareStatement("select * from aaa where score=?");
preparedStatement.setString(1,"80");

4. 执行sql语句

DQL、DML。。。

// 1
ResultSet resultSet1 = statement.executeQuery("select * from aaa where score=80");

// 2
ResultSet resultSet2 = preparedStatement.executeQuery();

//3 DML
statement.executeUpdate();

5. 处理查询结果集

只有DQL的时候才有

while (resultSet2.next()) {
    System.out.println(resultSet2.getString(1));
    System.out.println(resultSet2.getString(2));
    System.out.println(resultSet2.getString(3));
}

6. 释放资源

JAVA和数据库属于进程之间的通信,所以要关闭

connection.close();
statement.close();

7. 事务