目录
一. JDBC的简介
1. 数据的持久化
2. 什么是JDBC
二. JDBC中常用的类和接口
1. Driver 接口
2. DriverManager 类
3. Connection 接口
4. Statement 接口
5. PreparedStatement接口
6. ResultSet 接口
三. 总结
前言
从现在开始就来讲解JDBC的相关知识了本文的目的是来大体的了解JDBC以及会用到的类和方法
旨在让读者更好的了解JDBC
个人主页:艺杯羹
一. JDBC的简介
1. 数据的持久化
先讲一个概念,数据的持久化(persistence)
简单来说就是将内存中的数据保存到可永久保存的设备中,例如磁盘
主要应用在将内存中的数据存储在关系型数据库中,也可以存储在磁盘文件、XML数据文件中
关系图如下:
2. 什么是JDBC
JDBC
- JDBC(Java DataBase Connectivity)java 数据库连接
- 是 JavaEE 平台下的技术规范
- 定义了在 Java 语言中连接数据库,执行 SQL 语句的标准 API
- 可以为多种关系数据库提供统一访问
数据库驱动程序
- 数据库驱动就是直接操作数据库的一个程序
- 不同数据库产品的数据库驱动名字有差异
- 在程序中需要依赖数据库驱动来完成对数据库的操作
Java中访问数据库技术
- 基于JDBC标准访问数据库
- 使用第三方ORM 框架,如Hibernate, Mybatis 等访问数据库
当有了JDBC那么java程序就可以通过JDBC,操作各种数据库(MySQL,Oracle,SQLserver等)
二. JDBC中常用的类和接口
先介绍JDBC常用的类和接口,从大体上了解一下
1. Driver 接口
英文意思
driver:驱动程序
从意思就可以看出,这个接口是关于数据库驱动的
Driver 接口的作用是来定义数据库驱动对象应该具备的一些能力。
比如与数据库建立连接的方法的定义,该接口是提供给数据库厂商使用的
所有支持 java 语言连接的数据库都实现了该接口,实现该接口的类我们称之为数据库驱动类
2. DriverManager 类
英文意思
Manager:管理
从意思可以看出,这个是关于数据库驱动管理的接口
DriverManager是驱动程序管理器,是负责管理数据库驱动程序的
驱动注册以后,会保存在DriverManager中的已注册列表中
DriverManager 通过实例化的数据库驱动对象,能够建立应用程序与数据库之间建立连接。并返回 Connection 接口类型的数据库连接对象。
- getConnection(String jdbcUrl, String user, String password)
该方法通过访问数据库的 url、用户名以及密码,返回对应的数据库的 Connection 对象 - JDBC URL
与数据库连接时,用来连接到指定数据库标识符
在 URL 中包括了该数据库的类型、 地址、端口、库名称等信息
注意:不同品牌数据库的连接 URL 不同
先了解一下这个URL的写法,之后会详细讲解的
Connection conn =
DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");
3. Connection 接口
英文意思
connection:连接
从意思可以看出,这个是连接数据库的接口
Connection 是数据库的连接(会话)对象
对数据库的一切操作都是在这个连接基础之上进行的,我们可以通过该对象执行 sql 语句并返回结果
常用方法
- createStatement()
创建向数据库发送 sql 语句的 Statement 接口类型的对象。 - preparedStatement(sql)
创建向数据库发送预编译 sql 的PrepareSatement 接口类型的对象。 - setAutoCommit(boolean autoCommit)
设置事务是否自动提交 - commit()
在链接上提交事务 - rollback()
在此链接上回滚事务(回滚就是撤销)
4. Statement 接口
一句话:用于执行SQL语句
用于执行静态 SQL 语句并返回它所生成结果的对象。 由 createStatement 创建,用于发送简单的 SQL 语句(不支持动态绑定)。字符串里要保存好
常用方法
- execute( String sql )
有结果集返回true 没有返回false
执行参数中的 SQL,返回是否有结果集 - executeQuery( String sql )
运行 select 语句,返回 ResultSet 结果集 - executeUpdate(String sql)
运行 insert/update/delete(DML操作) 操作,返回更新的行数 - addBatch(String sql)
把多条 sql 语句放到一个批处理中
批量添加 - executeBatch()
向数据库发送一批 sql 语句执行
5. PreparedStatement接口
一句话:用来执行SQL语句,和Statement接口类似,但是这个接口能够避免很多问题,所以后期基本上都是用的这个接口
继承自 Statement 接口。PreparedStatement 对象比 Statement 对象的效率更高,由于实现了动态的参数绑定,所以可以防止 SQL 注入(支持动态),所以我们一般都使PreparedStatement
对Statement接口做了一个扩展
常用方法
- 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 值
6. 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)
获取在数据库里任意类型的数据。
三. 总结
这就是JDBC的初认识以及之后会用到的相关的类和方法,希望能够帮助到你😊