数据库:JDBC学习笔记

JDBC

JDBC(Java Database Connectivity,Java数据库连接)

  • 用于执行SQL语句的Java API,由Java编写的类和接口组成,可以为多种关系数据库提供 统一访问

  • 提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序

  • JDBC特性:坚固、安全、易用、易于理解、可从网络上自动下载(所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法)

  • JDBC库包括通常与数据库使用相关的下面提到的每个任务的API:

    • 连接数据库
    • 创建SQL或MySQL语句
    • 在数据库中执行SQL或MySQL查询
    • 查看和修改生成的记录

JDBC体系结构

通常,JDBC体系结构由两层组成:

  • JDBC API:提供 应用程序 到 JDBC管理器 连接

  • JDBC驱动程序API:支持 JDBC管理器 到 驱动程序连接

JDBC API使用 驱动程序管理器 和 特定于数据库的驱动程序 来提供与异构数据库的透明连接

JDBC 核心组件

DriverManager:此类管理数据库驱动程序列表。使用通信子协议将来自Java应用程序的连接请求与适当的数据库驱动程序匹配。

**Driver:**此接口处理与数据库服务器的通信。我们很少会直接拍与Driver对象进行交互,而是使用DriverManager对象来管理这种类型的对象。

**Connection:**该接口具有用于联系数据库的所有方法。连接对象表示通信上下文,即,与数据库的所有通信仅通过连接对象。

**Statement:**使用此接口创建的对象将SQL语句提交到数据库。除了执行存储过程之外,一些派生接口还接收参数。

**ResultSet:**在使用Statement对象执行SQL查询后,这些对象保存从数据库检索的数据。它作为一个迭代器,允许我们移动其数据

**SQLException:**此类处理数据库应用程序中发生的任何错误

使用方法

构建应用程序的步骤

构建JDBC应用程序涉及以下六个步骤:

  • 导入包:需要包含包含数据库编程所需的JDBC类的包。大多数情况下,使用import java.sql.*就足够了
  • 注册JDBC驱动程序:要求您初始化驱动程序,以便您可以打开与数据库的通信通道
  • 打开连接:需要使用DriverManager.getConnection()方法创建一个Connection对象,该对象表 示与数据库的物理连接。
  • 执行查询:需要使用类型为Statement的对象来构建和提交SQL语句到数据库
  • 从结果集中提取数据:使用相应的ResultSet.getXXX()方法从结果集中检索数据
  • 释放资源:需要明确地关闭所有数据库资源,而不依赖于JVM的垃圾收集

JDBC连接步骤

  • 导入JDBC包:将Java语言的import语句添加到Java代码中导入所需的类
  • 注册JDBC驱动程序:此步骤将使JVM将所需的驱动程序实现加载到内存中,以便它可以满足您的JDBC 请求
  • 数据库URL配置:这是为了创建一个格式正确的地址,指向要连接到的数据库
  • 创建连接对象:最后,调用DriverManager对象的getConnection()方法来建立实际的数据库连接。
注册JDBC驱动程序

Class.forName()

最常见的方法是使用Java的Class.forName()方法,将驱动程序的类文件动态加载到内存中,并将其自动注册
DriverManager.registerDriver()

Class.forName("com.mysql.cj.jdbc.Driver");

第二种方法是使用静态DriverManager.registerDriver()

try {
	Driver myDriver = new com.mysql.cj.jdbc.Driver();
	DriverManager.registerDriver( myDriver ); }catch(ClassNotFoundException ex) { 
	System.out.println("Error: unable to load driver class!");
    System.exit(1); 
}
数据库URL配置

在这里插入图片描述

创建数据库连接对象

加载驱动程序后,可以使用**DriverManager.getConnection()**方法建立连接。以下是三个重载的DriverManager.getConnection()方法

  • getConnection(String url)
  • getConnection(String url,Properties prop)
  • getConnection(String url,String user,String password)

例1:使用URL、用户名密码

String URL = "jdbc:mysql://localhost:3306/yhp2?serverTimezone=UTC"; 
String USER = "username"; 
String PASS = "password" 
Connection conn = DriverManager.getConnection(URL, USER, PASS);

例2:使用数据库URL和属性对象

DriverManager.getConnection(String url, Properties info);
import java.util.*; 
String URL = "jdbc:mysql://localhost:3306/yhp2?serverTimezone=UTC"; 
Properties info = new Properties( );
info.put( "user", "username" ); 
info.put( "password", "password" ); 
Connection conn = DriverManager.getConnection(URL, info);
关闭数据库连接

为确保连接关闭,可以在代码中提供一个“finally”块
一个finally块总是执行,不管是否发生异常
要关闭上面打开的连接,应该调用close()方法如下

if(conn != null){
	conn.close();
}

执行SQL语句

获得连接后,可以与数据库进行交互

JDBC Statement和PreparedStatement接口定义了能够发送SQL命令并从数据库接收数据的方法和属性

接口 推荐使用
Statement 用于对数据库进行通用访问。在运行时使用静态SQL语句时很有用。Statement接口不能 接受参数
PreparedStatement 当您计划多次使用SQL语句时使用。PreparedStatement接口在运行时接受 输入参数
Statement

是一个状态通道

创建Statement对象

在使用Statement对象执行SQL语句之前,需要使用Connection对象的createStatement()方法创建一个,如下例所示:

Statement stmt = null; 
try {
	stmt = conn.createStatement( ); 
	. . . 
}catch (SQLException e) { 
	. . . 
}finally { 
. . . 
}

执行方法

创建Statement对象后,可以使用它来执行一个SQL语句,其中有三个执行方法

  • boolean execute(String SQL):如果可以检索到ResultSet对象,则返回一个布尔值true; 否则返回false,使用此方法执行SQL DDL语句或需要使用真正的动态SQL时

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBC(Java Database Connectivity)是Java语言操作数据库的基础API,它提供了一种标准的方法来连接和操作各种关系型数据库JDBC的基本使用分为以下几个步骤: 1. 加载驱动程序:在使用JDBC操作数据库之前,需要先加载相应的驱动程序。不同的数据库需要加载不同的驱动程序,一般情况下驱动程序的jar包都会提供。 ```java Class.forName("com.mysql.jdbc.Driver"); ``` 2. 建立连接:使用DriverManager类的getConnection()方法连接数据库。 ```java String url = "jdbc:mysql://localhost:3306/test?useSSL=false"; String username = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, username, password); ``` 其中url为连接数据库的URL,username和password为连接数据库的用户名和密码。 3. 创建Statement对象:通过Connection对象的createStatement()方法创建一个Statement对象,用于执行SQL语句。 ```java Statement stmt = conn.createStatement(); ``` 4. 执行SQL语句:可以通过Statement对象的execute()或executeQuery()方法执行SQL语句,如果是更新操作则使用executeUpdate()方法。 ```java ResultSet rs = stmt.executeQuery("SELECT * FROM users"); ``` 5. 处理结果集:如果执行的SQL语句返回了结果集,则可以通过ResultSet对象进行处理。 ```java while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); System.out.println("id: " + id + ", name: " + name); } ``` 6. 关闭连接:使用完数据库后需要关闭连接,释放资源。 ```java rs.close(); stmt.close(); conn.close(); ``` 以上就是JDBC的基本使用过程,通过JDBC可以实现Java程序与数据库的交互,完成各种数据库操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值