点击蓝色“ 程序猿DD ”关注我
回复“ 资源 ”获取独家整理的学习资料!
作者 | 码农小胖哥
来源 | 公众号「码农小胖哥」
双十一虚拟机大促,主打机型大横评!
JDBC 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。java 提供了jdbc的接口规范,对应数据库厂商依照规范进行驱动类库开发,提供给开发者。应用程序与数据以jdbc桥接的方式进行交互,任何基于JDBC 的 ORM 框架都是对JDBC 操作的封装。
常用接口
java.sql.Driver
该接口是提供给数据库开发厂商的,主要功能是描述驱动程序,提供驱动信息,最重要的是实现数据库连接的抽象 Connection connect(String url, java.util.Properties info) throws SQLException,如果某个数据库要实现jdbc规范必须实现该接口。开发者装载该接口通过 Class.forName(String driverName)进行,其中 driverName 为全类名。
java.sql.Connection
该接口是数据库jdbc 连接的抽象层,主要生成SQL并向数据库发送
编译语句 java.sql.Statement
预编译语句java.sql.PreparedStatement
数据库存储过程 java.sql.CallableStatement
同时事务级别 事务的commit,事务的callback,连接的生命周期 也由 Connection 来操作。
事务的隔离级别
int TRANSACTION_NONE = 0 无事务
int TRANSACTION_READ_UNCOMMITTED = 1 读取未提交
int TRANSACTION_READ_COMMITTED = 2 读取已提交
int TRANSACTION_REPEATABLE_READ = 4 可重复读取
int TRANSACTION_SERIALIZABLE = 8 可序列化
java.sql.Statement
用于执行静态SQL语句并返回它所生成结果的对象。
类图:
Statement:由createStatement创建,用于发送简单的SQL语句(不带参数) 。 statement 没有 set<Type>之类的方法,所以sql必须作为一个整体传入。 例如
PreparedStatement :继承自Statement接口,由preparedStatement创建,用于发送含有一个或多个参数的SQL语句。PreparedStatement对象比Statement对象的效率更高,并且可以防止SQL注入,所以我们一般都使用PreparedStatement,大数据量比较消耗资源。例如
CallableStatement:继承自PreparedStatement接口,由方法prepareCall创建,用于调用存储过程
statement 常用方法:
execute(String sql):运行语句,返回是否有结果集
executeQuery(String sql):运行select语句,返回ResultSet结果集。
executeUpdate(String sql):运行insert/update/delete操作,返回更新的行数。
addBatch(String sql) :把多条sql语句放到一个批处理中。
executeBatch():向数据库发送一批sql语句执行。
set<Type>(int colunmIndex,Type val) 系列接口 PreparedStatement 回填参数值
java.sql.ResultSet
主要用来获取sql执行后返回的结果集
获取字段数据操作
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):获取在数据库里任意类型的数据。
游标操作
next():移动到下一行
previous():移动到前一行
absolute(int row):移动到指定行
beforeFirst():移动resultSet的最前面。
afterLast() :移动到resultSet的最后面。
resultSet statement connection 都是需要关闭 遵循从下游到上游的方向依次关闭
以上就是对jdbc一些重要方法的分析,Mybatis、Spring Data JPA、Hibernate ORM、JOOQ都是建立在jdbc基础之上的。深刻理解jdbc,其他ORM框架才能用的更得心应手。
双十一虚拟机大促,主打机型大横评!
本文通过OpenWrite的免费Markdown转换工具发布
留言交流不过瘾
关注我,回复“ 加群 ” 加入各种主题讨论群
从零搭建创业公司后台技术栈
别死写代码,这 25 条比涨工资都重要
效率至上:K8S一键部署了解一下?
Java 14 可能带来什么新特性?
面试最后一问:你有什么问题想问我吗?
朕已阅