JDBC简介及实例

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: JDBC简介及实例

关于JDBC在早些年的面试过程中,经常会让手写JDBC代码,但随着ORM框架的发展,关于手写JDBC代码的面试题越来越少,但这并不等于JDBC的没落。在此种情况下更好的理解JDBC,反而更有利于理解当前ORM框的优势所在。因为,JDBC它本身只是一个规范。


JDBC简介

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。它由一组用Java语言编写的类和接口组成。通常说的JDBC是面向关系型数据库的。


通过下图,我们将了解JDBC在整个系统中的位置。


image.png在整个系统中,java应用程序通过JDBC提供的API连接到JDBC Driver,而这些JDBC驱动器的具体实现是由各大数据库厂家针对JDBC规范而编写,并提供给使用者。


JDBC使用示例

下面展示一下如何在Java代码中使用JDBC。首先需要引入对应数据库的依赖jar包。这里以mysql为例,在pom.xml文件中引入以下依赖:


<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.18</version>
</dependency>

然后创建数据库表,相关示例语句如下:

CREATE TABLE `spring`.`tb_order` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `order_no` VARCHAR(45) NULL,
  `amount` INT(12) NULL,
  PRIMARY KEY (`id`));

下面就是在项目中具体使用JDBC,这里以DbUtil类的main方法为程序的入口。

public class DbUtil {
  private static final String URL = "jdbc:mysql://127.0.0.1:3306/spring";
  private static final String USER = "root";
  private static final String PASSWORD = "123_123";
  public static void main(String[] args) {
    Connection conn = null;
    try {
      //1.加载驱动程序
      Class.forName("com.mysql.jdbc.Driver");
      //2. 建立数据库连接
      conn = DriverManager.getConnection(URL, USER, PASSWORD);
      //3.创建数据库操作对象,实现增删改查
      Statement stmt = conn.createStatement();
      //4.定义操作的SQL语句
      //5.执行数据库操作
      ResultSet rs = stmt.executeQuery("SELECT order_no, amount FROM tb_order");
      //6.获取并操作结果集
      while (rs.next()) {
        System.out.println("订单号:" + rs.getString("order_no") + " 金额:" + rs.getInt("amount"));
      }
    } catch (Exception e) {
      // 日志信息
    } finally {
      // 7、关闭资源
      if (conn != null) {
        try {
          conn.close();
        } catch (SQLException e1) {
          e1.printStackTrace();
        }
      }
    }
  }
}

JDBC API核心接口和类

通过上述的代码,我们可以看到JDBC的API有以下核心接口和类:


DriverManager:此类,管理数据库驱动程序的列表。确定内容是否符合从Java应用程序使用的通信子协议正确的数据库驱动程序的连接请求。识别JDBC在一定子协议的第一个驱动器将被用来建立数据库连接。

Driver: 此接口,处理与数据库服务器通信。很少直接直接使用驱动程序(Driver)对象,一般使用DriverManager中的对象,它用于管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息。

Connection : 此接口,连接对象表示通信上下文,即与数据库中的所有的通信是通过此唯一的连接对象。

Statement : 此接口可将创建的对象的SQL语句提交到数据库。一些派生的接口接受除执行存储过程的参数。

ResultSet: 存储数据库操作结果,执行使用Statement对象的SQL查询中检索数据。它作为一个迭代器,可以通过移动它来检索下一个数据。

SQLException: 数据库操作相关异常信息。

小结

通过上述代码,我们可以看出使用JDBC原生的API来操作数据库,需要非常多的步骤。而且还需要开发人员来控制连接的关闭、异常等操作,操作步骤比较复杂,这也给ORM框架带来的机会。



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL Java 数据库连接
JDBC基础入门与常用实例详解
JDBC基础入门与常用实例详解
141 0
|
5月前
|
Java 关系型数据库 MySQL
JDBC简介以及快速入门
JDBC简介以及快速入门
33 0
|
SQL 关系型数据库 Java
数据库系列课程(07)-Sharding-Jdbc简介
数据库系列课程(07)-Sharding-Jdbc简介
117 0
|
SQL Ubuntu Java
一文搞懂JDBC应该怎么用,附代码实例
说到Java的常见框架,JDBC一定是榜上有名。 虽然大多数人会使用Mybatis来做Java应用和MySQL之间的数据交互,但了解JDBC依然是一个Java工程师的基本功。 本篇文章,就来介绍一下JDBC这个框架,最后内会附上代码实例。
181 1
一文搞懂JDBC应该怎么用,附代码实例
|
SQL Java 数据库连接
JDBC系列--template实例练习
JDBC系列--template实例练习
85 0
|
Oracle druid Java
ShardingSphere-Sharding-JDBC简介 | 学习笔记
快速学习ShardingSphere-Sharding-JDBC简介。
ShardingSphere-Sharding-JDBC简介 | 学习笔记
|
网络协议 Java 数据库连接
JDBC 简介|学习笔记
快速学习 JDBC 简介
222 0
|
SQL NoSQL Java
Spring Boot 整合 JDBC Template 实例
Spring Boot 整合 JDBC Template 实例
149 0
Spring Boot 整合 JDBC Template 实例
|
SQL 缓存 druid
Spring之路(29)–Spring JDBC多种数据源DataSource配置实例
本文目录 1. 何为数据源 2. 数据源实现 3. 使用数据源 4. 不同的数据源类 5. 连接池功能的数据源 6. Druid配置与使用
1197 1
|
网络协议 Java 数据库连接
JDBC 简介|学习笔记
快速学习 JDBC 简介
110 0