正在连接海拉鲁...

JDBC

概述

  1. JDBC:java数据库连接技术
  2. 特点:
    • 是一种用于执行Sql语句的JavaAPI
    • 可以为多种关系型数据库提供统一接口
    • 它是由一组Java语言编写的类和接口组成
    • 是java中访问数据库的标准规范
  3. 驱动
    • Java提供访问数据库的一个规范,生产厂商提供规范的实现类称为驱动
    • 每个数据库厂商都需要提供自己的驱动,用来连接自己公司的数据库

JDBC操作过程

注册驱动

  1. 在项目的依赖中添加驱动jar包

  2. 在程序中注册驱动

    Class.forName("驱动类完全限定名");
    
            Class.forName("com.mysql.cj.jdbc.Driver");//mysql8的驱动
            Class.forName("com.mysql.jdbc.Driver");//mysql8以下的驱动
    

获得到数据库的连接

  1. jdbc规范规定url格式由三部分组成,每部分中间用冒号分隔

  2. 第一部分:jdbc,这是规定的

  3. 第二部分:数据库名称

  4. 第三部分:由数据库厂商规定,需要按照厂商要求编写

    jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
  5. 得到连接

    Class.forName("com.mysql.cj.jdbc.Driver");
          Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai", "root", "1");
          connection.close();
  6. 获得执行sql语句的命令对象

    Statement statement = connection.createStatement();
  7. 执行sql

    int n = statement.executeUpdate(sql);//n表示影响数据库的行数
  8. 释放资源

    statement.close();
    connection.close();
  9. 处理结果集

    ResultSet executeQuery(String sql):用来执行查询语句,得到结果集
    • next():指针向下移动一个位置,如果有下一个位置返回true,没有返回false
    • getXXX(int 列号):获取结果集当前行中列号对应的值,并转换为XXX类型(列号从1开始)
    • getXXX(String 列名|列别名):获取结果集当前行,当前列名或列别名对应的值,并转为XXX的类型
  10. PreparedStatement

  • 该对象具有预先处理的功能,其执行速度要快于Statement,是接口,继承于Statement

  • 能够避免sql注入式攻击

  • 该接口提供了一套方法用于设置发送给数据库的sql语句占位符

    • setXXX():XXX代表占位符的数据类型
    PreparedStatement p = connection.prepareStatement(sql);//从连接对象中调用该方法,放回预处理对象
    ResultSet rs = p.executeQuery();//不要再写入sql语句
  1. 事务管理

    • 事务:一组SQL语句组成,把这些Sql语句看作一个整体处理,要么全部执行成功,要么全部执行不成功

    • 步骤

      • 取消自动提交

        connection.setAutoCommit(false);//默认是true
      • 提交事务

        connection.commit();
      • 回滚事务

        connection.rollback();

项目

  1. Lombok
    • 是一个java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释用来消除java类中大量的样板代码,仅五个字符(@Data)就可以替代百行代码从而产生干净整洁易于维护的java类
    • 使用
      • 在开发工具中安装Lombok插件(Idea中集成)
      • 在项目中引入lombok.jar包
      • 使用lombok注解
  2. jdbcTemplate
    • 是Spring Framework提供的一个JDBC技术的简化封装工具,它可以帮助我们更方便地进项数据库操作。