JDBC简介及实例

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

JDBC简介

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

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

image

在整个系统中,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框架带来的机会。

精品SpringBoot 2.x视频教程

《Spring Boot 2.x 视频教程全家桶》精品Spring Boot 2.x视频教程,打造一套最全的Spring Boot 2.x视频教程。


程序新视界

公众号“程序新视界”,一个让你软实力、硬技术同步提升的平台

csdn-微信公众号

程序新视界 CSDN认证博客专家 Spring 架构 Java
个人公众号【程序新视界】,一个硬技术,软实力同步提升的平台。《Spring Boo技术内幕:架构设计与实现原理》作者,《深入以太坊智能合约开发》联合作者之一。主要从事于三方支付行业。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值