Skip to content

基础使用

JDBC概念

JDBC(Java Database Connectivity),意为Java数据库连接,它是Java提供的一组独立于任何数据库管理系统的API

Java提供接口规范,由各个数据库厂商提供接口的实现,厂商提供的实现类封装成jar文件,也就是我们俗称的数据库驱动jar包。

基础使用

  1. 下载 MySQL 数据库驱动

    注意

    • 尽量下载与电脑MySQL版本相符的JDBC数据库驱动jar包;

    • 尽量下载 8.0.25 以后的JDBC数据库驱动,因为 8.0.25 之前的驱动需要设置时区;

  2. 下载完成后,解压压缩包,将 mysql-connector-java-8.0.26.jar 包复制到项目的 lib 目录下,并右击 Add as Libiary:

  3. 新建数据库表,用于测试使用:

    sql
    CREATE DATABASE atguigu;
    use atguigu;
    
    create table t_emp
    (
      emp_id     int auto_increment comment '员工编号' primary key,
      emp_name   varchar(100)  not null comment '员工姓名',
      emp_salary double(10, 5) not null comment '员工薪资',
      emp_age    int           not null comment '员工年龄'
    );
    
    insert into t_emp (emp_name,emp_salary,emp_age)
    values  ('andy', 777.77, 32),
            ('大风哥', 666.66, 41),
            ('康师傅',111, 23),
            ('Gavin',123, 26),
            ('小鱼儿', 123, 28);
  4. 使用驱动,实现查询:

    java
    public static void main(String[] args) throws Exception {
      // 注册驱动
      Class.forName("com.mysql.cj.jdbc.Driver");
    
      // 获取连接对象
      String url = "jdbc:mysql://localhost:3306/atguigu";
      String username = "root";
      String password = "1234";
      Connection connection = DriverManager.getConnection(url, username, password);
    
      // 获取执行sql语句的对象
      Statement statement = connection.createStatement();
    
      // 编写sql语句,并执行,接收返回的结果集
      String sql = "SELECT emp_id,emp_name,emp_salary,emp_age from t_emp";
      ResultSet resultSet = statement.executeQuery(sql);
    
      // 处理结果,遍历resultSet结果集
      while (resultSet.next()) {
        int empId = resultSet.getInt("emp_id");
        String empName = resultSet.getString("emp_name");
        double empSalary = resultSet.getDouble("emp_salary");
        int empAge = resultSet.getInt("emp_age");
        System.out.println(empId + "\t" + empName + "\t" + empSalary + "\t" + empAge);
      }
    
      // 释放资源(先开后关原则)
      resultSet.close();
      statement.close();
      connection.close();
    }

Released under the MIT License.