JDBC--Java的数据库编程

4 篇文章 0 订阅

1 JDBC 背景知识

1.1 什么是JDBC

 JDBC 英文全称为 Java Database Connectivity ,也就是 Java 数据库的连接,也可以说其是用于执行 SQL 语句的 Java API, 也是Java 中数据库的连接规范.
组成: 由 java.sql.* , javax.sql.* 包中的一些接口和类组成, 为 Java 开发人员操作数据库提供了一个标准的 API,方便对关系数据库的访问.

1.2 为什么要引入 JDBC

#emsp; 首先简单说一下什么是 API: 英文全称为 Application Programming Interface, 指的是提供了一组函数或类或方法,能够让程序猿们直接去使用, 有时候也可称之为接口.
  我们都知道就数据库而言, MySQL 的 API 和 Server 的 API 都有着显著的区别,于是开发人员在写代码的时候就会频繁的切换 API, 对程序猿而言这是一件非常苦恼的事情,为了解决这个问题,就引入了 JDBC 的概念, 可以理解成是 Java 自带的一组数据库操作的 API, 其涵盖了各种数据库的操作方式,把不同数据库的 API 都统一到一起了, 这就像是一个充电器的转接头, 有的充电宝自带的数据线是 type-c 的,那么苹果用户想要使用就得买一个转接头,例如我得充电宝一样!!!
在这里插入图片描述
其实现原理如下图所示:
在这里插入图片描述
不同的数据库需要提供不同的驱动程序, 在 Java 中的驱动程序是一个 " jar " 包.

2 jar 包导入操作步骤

 使用 jar 包之前,需要将 jar 包导入到 IDEA 中,这时候代码才能够访问到 jar中的类.

  • 步骤一: 在 maven 仓库中下载 jar 包,这里需要注意下载的 jar 包要与自己电脑上的 mysql 版本一致;
    在这里插入图片描述
  • 步骤二: 在 IDEA 工程中创建文件夹,将 jar 包拷贝进去;
    在这里插入图片描述
  • 步骤三: 配置项目属性,让项目能够找到 jar 包;
    在这里插入图片描述
  • 步骤四: 检查是否导入成功
    在这里插入图片描述
    当出现红框中的信息时代表已经导入成功!!!

3 JDBC 的使用

3.1 代码示例

  关于 JDBC 的使用用一段代码进行解释,代码如下:

public class TestJDBC1 {
    public static void main(String[] args) throws SQLException {
        //1.创建DataSource对象
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://**********");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");
        //2.创建Connection对象,和数据库建立连接
        Connection connection = dataSource.getConnection();
        //3.借助PrepareStatement拼装SQL语句
        String sql = "select * from student";
        PreparedStatement statement = connection.prepareStatement(sql);
        //4.执行SQL语句
        ResultSet resultSet = statement.executeQuery();
        //5.遍历结果集,遍历过程和使用迭代器遍历有点像.
        //   结果集相当于一张表,这个表里有很多行,每一行是一条记录(又包含很多列).
        //   next() 一方面是判定当前时候存在下一行,另一方面如果存在下一行就获取到这一行.
        //   可以直观的把resultSet对象想象成是一个"光标".
        while(resultSet.next()) {
            // resultSet的光标指向了当前行,就可以把当前行中的列数据都获取到
            // 当前表中的每一行包含三个列.id,name,classId,可以根据列名来获取对应的列数据.
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            int classId = resultSet.getInt("classId");
            //注意这里的顺序要和数据库中的表格顺序对应一致.
            System.out.println("id: " + id +"  name: " + name +  "  classId: " + classId);
        }
        //6. 关闭释放资源.
        //   后创建的对象需要先释放.
        resultSet.close();
        statement.close();
        connection.close();
    }
}

注意事项:

  • 创建数据库连接 Connection; 获取 Connection 对象通常有两种方式,但是目前建议使用方式二;

方式一: 通过 DriverManager (驱动管理类) 的静态方法获取;
方式二:通过 DataSource (数据源) 对象获取.
DriverManager 的获取方式是无法重复利用的,每次使用完以后释放资源, connection.close()都是关闭物理连接;
DataSource 提供连接池的支持,连接池在初始化时将创建一定数量的数据库连接,这些连接是可以重复使用的,每次使用完数据库释放资源,通过调用 connection.close() 都是将 Connection 连接对象回收.

  • insert / delete / update 都使用executeUpdate方法来执行., select 使用 executeQuery 来执行.

3.2 步骤总结

  • 创建DataSource 对象,并配置三方面信息;
    在这里插入图片描述
  • 和数据库建立连接, 每个请求创建一个新的 connection;
    在这里插入图片描述
  • 用到PrepareStatement拼装 SQL 语句;
    在这里插入图片描述
  • 执行 SQL 语句;在这里插入图片描述
  • 遍历结果集;
    在这里插入图片描述
  • 关闭释放相关资源, 后创建的先被释放.
    在这里插入图片描述

3.3 题外篇

  关于创建 DataSource 时的setURL, 每个字段含义如下图所示:

在这里插入图片描述

4 增删改查

  关于 JDBC 的实际使用将在JDBC的几个固定套路写法–Java的数据库编程这篇文章中展示给大家,这篇文章的内容主要是增删查改的固定套路写法,在以后的学习或者是工作中将会经常使用这几种固定写法,方便大家借鉴参考和温顾.

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值