MySQL数据库干货_24——JDBC概述及JDBC中常用的类与接口
JDBC概述
数据的持久化
-
持久化(persistence):将内存中的数据保存到可永久保存的存储设备中(如磁盘)。
-
持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。
什么是 JDBC
- JDBC(Java DataBase Connectivity)java 数据库连接
- 是
JavaEE
平台下的技术规范 - 定义了在 Java 语言中连接数据库,执行 SQL 语句的标准 API
- 可以为多种关系数据库提供统一访问
什么是数据库驱动程序
- 数据库驱动就是直接操作数据库的一个程序
- 不同数据产品的数据库驱动名字有差异
- 在程序中需要依赖数据库驱动来完成对数据库的操作
Java中访问数据库技术
- 基于JDBC标准访问数据库
- 使用第三方ORM 框架,如Hibernate, Mybatis 等访问数据库
程序操作数据库流程
如果没有JDBC,那么Java程序访问数据库时是这样的:
有了JDBC,Java程序访问数据库时是这样的:
JBDC中常用的类与接口
Driver 接口
Driver 接口的作用是来定义数据库驱动对象应该具备的一些能力。比如与数据库建立连接的方法的定义,该接口是提供给数据库厂商使用的,所有支持 java 语言连接的数据库都实现了该接口,实现该接口的类我们称之为数据库驱动类。
DriverManager 类
DriverManager是驱动程序管理器,是负责管理数据库驱动程序的。驱动注册以后,会保存在DriverManager中的已注册列表中。 DriverManager 通过实例化的数据库驱动对象,能够建立应用程序与数据库之间建立连接。并返回 Connection 接口类型的数据库连接对象。
-
getConnection(String jdbcUrl, String user, String password)
该方法通过访问数据库的 url、用户以及密码,返回对应的数据库的 Connection 对象。
-
JDBC URL
与数据库连接时,用来连接到指定数据库标识符。在 URL 中包括了该数据库的类型、 地址、端口、库名称等信息。不同品牌数据库的连接 URL 不同。
-
连接 MySql 数据库:
Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");
-
连接 Oracle 数据库:
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:database", "user", "password");
-
Connection 接口
Connection 是数据库的连接(会话)对象。对数据库的一切操作都是在这个连接基础之上进行的,我们可以通过该对象执行 sql 语句并返回结果。
常用方法
-
createStatement()
创建向数据库发送 sql 的 Statement 接口类型的对象。
-
preparedStatement(sql)
创建向数据库发送预编译 sql 的 PreparedSatement 接口类型的对象。
-
setAutoCommit(boolean autoCommit)
设置事务是否自动提交。
-
commit()
在链接上提交事务。
-
rollback()
在此链接上回滚事务。
Statement 接口
用于执行静态 SQL 语句并返回它所生成结果的对象。 由 createStatement 创建,用于发送简单的 SQL 语句(不支持动态绑定)。
常用方法
-
execute(String sql)
执行参数中的 SQL,返回是否有结果集。
-
executeQuery(String sql)
运行 select 语句,返回 ResultSet 结果集。
-
executeUpdate(String sql)
运行 insert/update/delete 操作,返回更新的行数。
-
addBatch(String sql)
把多条 sql 语句放到一个批处理中。
-
executeBatch()
向数据库发送一批 sql 语句执行。
PreparedStatement接口
继承自 Statement 接口,由 preparedStatement 创建,用于发送含有一个或多个参数的 SQL 语句。PreparedStatement 对象比 Statement 对象的效率更高,由于实现了动态的参数绑定,所以可以防止 SQL 注入,所以我们一般都使用 PreparedStatement。
常用方法
-
addBatch()
把当前 sql 语句加入到一个批处理中。
-
execute()
执行当前 SQL,返回个 boolean 值
-
executeUpdate()
运行 insert/update/delete 操作,返回更新的行数。
-
executeQuery()
执行当前的查询,返回一个结果集对象
-
setDate(int parameterIndex, Date x)
向当前SQL语句中的指定位置绑定一个java.sql.Date值
-
setDouble(int parameterIndex, double x)
向当前 SQL 语句中的指定位置绑定一个 double值
-
setFloat(int parameterIndex, float x)
向当前 SQL 语句中的指定位置绑定一个 float 值
-
setInt(int parameterIndex, int x)
向当前 SQL 语句中的指定位置绑定一个 int 值
-
setString(int parameterIndex, String x)
向当前 SQL 语句中的指定位置绑定一个 String 值
ResultSet 接口
ResultSet 用来暂时存放数据库查询操作获得结果集。
常用方法
-
getString(int index)、getString(String columnName)
获得在数据库里是 varchar、char 等类型的数据对象。
-
getFloat(int index)、getFloat(String columnName)
获得在数据库里是 Float 类型的数据对象。
-
getDate(int index)、getDate(String columnName)
获得在数据库里是 Date 类型的数据。
-
getBoolean(int index)、getBoolean(String columnName)
获得在数据库里是 Boolean 类型的数据。
-
getObject(int index)、getObject(String columnName)
获取在数据库里任意类型的数据。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!