一、JDBC简介
JDBC(Java DataBase Connectivity),即Java数据库连接。
简而言之,就是通过Java语言来操作数据库。
我们可以把JDBC理解成是官方定义的一套操作所有关系型数据库的规则,规则即接口,都在这个包下 java.sql.*。
也就是说,官方定义了一套操作所有关系型数据库的接口,然后让各个数据厂商(Mysql、Oracle等)用实现类去实现这套接口,再把这些实现类打包(数据驱动jar包),并提供数据驱动jar包给我们使用。我们可以使用这套JDBC接口进行编程,但是真正执行的代码是驱动jar包中的实现类。
为什么?因为JDBC是通过接口来调用方法的,当你导入了驱动jar包(实现类)后,那调用的方法肯定是实现类里面的方法。
二、配置驱动
- 手动下载mysql-connector-java jar包并配置到lib
- 使用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();