前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JDBC 规范回顾

JDBC 规范回顾

作者头像
码农小胖哥
发布2019-12-10 16:31:06
5590
发布2019-12-10 16:31:06
举报

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框架才能用的更得心应手。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农小胖哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档