JDBC入门

  1. 概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库

  2. 本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。

  3. Java语言操作MySQL数据库快速入门:

    步骤:

    1. ​ 导入驱动jar包:各个mysql数据库版本对应版本号的驱动jar包,例如:我安装的是mysqsl-8.0.20版的mysql数据库,所以我使用的jar包就是 mysql-connector-java-8.0.20.jar。

      导入方法:在项目里创建libs文件夹,直接把mysql-connector-java-8.0.20.jar复制到里面,然后右键jar包,点击Add As Library。

    2. 注册驱动:

      ​ Class.forName(“com.mysql.cj.jdbc.Driver”);

      也可以不写,jar包里自带有注册驱动

    3. 获取连接对象 Connection

    4. 定义sql语句

    5. 获取执行sql语句的对象Statement

    6. 执行sql,接收返回结果

    7. 处理结果

    8. 释放资源

  4. 代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class jdbcTest01 {
public static void main(String[] args) throws Exception {
//导入驱动jar包
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接对象
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1?&useSSL=false&serverTimezone=UTC", "root", "1234");
//定义一个sql语句
String sql = "insert into stu1(id,name) values(1221,'小红') ";
//获取执行sql的对象 Statement
Statement statement = connection.createStatement();
//执行sql
int i = statement.executeUpdate(sql);
//处理结果
System.out.println(i);
//释放资源
statement.close();
connection.close();
}
}
  1. 解释

    1. DriverManager:驱动管理对象

      • 功能:

        • 注册驱动:告诉程序该使用哪个数据库驱动jar

        • jdk解释:

          static void registerDriver(Driver driver) :注册与给定的驱动程序 DriverManager

        • 写代码使用:Class.forName(“com.mysql.cj.jdbc.Driver”);

          • 注意:mysql8需要在 .mysql.后加cj
          • 注意:mysql5之后可以不写
    2. 获取数据库连接:

      • 方法:static Connection getConnection(String url, String user, String password)

      • 参数:

        • url:指定连接路径,就是你需要连接的数据库地址

          • 语法:jdbc:mysql://ip地址(域名):端口号/数据库名称

          • mysql8之后的数据库需要在数据库名后加上:?&useSSL=false&serverTimezone=UTC

            例:jdbc:mysql://localhost:3306/test1?&useSSL=false&serverTimezone=UTC

          • 注意:如果连接的是本机mysql服务器,并且mysql服务默认端口是3306,则url可以简写为:jdbc:mysql:///数据库名称

        • user:用户名,mysql的用户名

        • password:密码,用户名对应的密码

    3. Connection:数据库连接对象

      • 获取执行sql语句的对象 有两种
        • Statement createStatement()
        • PreparedStatement prepareStatement(String sql)
    4. Statement:执行sql的对象

      • boolean execute(String sql) :可以执行任意的sql
      • int executeUpdate(String sql) :执行DML(insert、update、delete)语句、DDL(create,alter、drop)语句,返回值为int类型,表示影响的行数
      • ResultSet executeQuery(String sql) :执行DQL(select)语句
    5. 释放资源:避免内存泄漏