IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JDBC--Java的数据库编程 -> 正文阅读

[Java知识库]JDBC--Java的数据库编程

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, 每个字段含义如下图所示:

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 11:57:15  更:2022-04-04 11:58:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:21:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码