一、JDBC中几个重要接口

1  Statement

——— SQL  语句执行接口
Statement 接口代表了一个数据库的状态,在向数据库发送相应的 SQL 语句 时,都需要创建 Statement 接口或 者PreparedStatement 接口。在具体应用中, Statement 主要用于操作不带参数(可以直接运行)的 SQL 语句,比如删除语句、 添加或更新。

扩展:如何进行模糊查询?
----关键点:如何根据条件拼接 SQL 语句。

2  PreparedStatement

———  预编译的 Statement
第一步:通过连接获得 PreparedStatement 对象,用带占位符(?)的 sql 语句构造。
PreparedStatement pstm = con.preparedStatement(“select * from test where id=?”);
第二步:设置参数
pstm.setString(1,“ganbin”);
第三步:执行 sql 语句
Rs = pstm.excuteQuery();

statement 发送完整的 Sql 语句到数据库不是直接执行而是由数据库先编译,再运行。而 PreparedStatement 是先发送带参数的 Sql 语句,再发送一组参数值。如果是同构的 sql语句,PreparedStatement 的效率要比 statement 高。而对于异构的 sql 则两者效率差不多。

同构:两个 Sql 语句可编译部分是相同的,只有参数值不同。
异构:整个 sql 语句的格式是不同的

注意点:

1、使用预编译的 Statement 编译多条 Sql 语句一次执行
2、可以跨数据库使用,编写通用程序
3、能用预编译时尽量用预编译

3  ResultSet

—— 结果集操作接口
ResultSet 接口是查询结果集接口,它对返回的结果集进行处理。ResultSet 是程序员进行 JDBC 操作的必需接口。

4  ResultSetMetaData

—— 元数据操作接口
ResultSetMetaData 是对元数据进行操作的接口,可以实现很多高级功能。Hibernate 运行数据库的操作,大部分都是通过此接口。可以认为,此接口是 SQL 查询语言的一种反射机制。 ResultSetMetaData 接口可以通过数组的形式,遍历数据库的各个字段的属性,对于我们开发 者来说,此机制的意义重大。

JDBC 通过元数据(MetaData)来获得具体的表的相关信息,例如,可以查询数据库中有哪些表,表有哪些字段,以及字段的属性等。MetaData 中通过一系列 getXXX 将这些信息返回给我们。

结果集元数据对象:ResultSetMetaData meta = rs.getMetaData();

  • 字段个数:meta.getColomnCount();
  • 字段名字:meta.getColumnName();
  • 字段 JDBC 类型:meta.getColumnType();
  • 字段数据库类型:meta.getColumnTypeName();

数据库元数据对象:DatabaseMetaData dbmd = con.getMetaData();
数据库名=dbmd.getDatabaseProductName();
数据库版本号=dbmd.getDatabaseProductVersion();
数据库驱动名=dbmd.getDriverName();
数据库驱动版本号=dbmd.getDriverVersion();
数据库 Url=dbmd.getURL();
该连接的登陆名=dbmd.getUserName()

二、JDBC异常处理

JDBC 中,和异常相关的两个类是 SQLException 和 SQLWarning。
1. SQLException 类:用来处理较为严重的异常情况。
比如:① 传输的 SQL 语句语法的错误;
   ② JDBC 程序连接断开;
   ③ SQL 语句中使用了错误的函数。
SQLException 提供以下方法:
getNextException() —— 用来返回异常栈中的下一个相关异常;
getErrorCode() —— 用来返回代表异常的整数代码 (error code);
getMessage() —— 用来返回异常的描述信息 (error message)。

2. SQLWarning 类:用来处理不太严重的异常情况,也就是一些警告性的异常。其提供的方法和使用与 SQLException 基本相似。
结合异常的两种处理方式,明确何时采用哪种。
A. throws 处理不了,或者要让调用者知道,就 throws;
B. try … catch 能自行处理,就进行异常处理。

03-JDBC学习手册:JDBC中几个重要接口和异常处理相关推荐

  1. JDBC学习总结 -- JDBC 快速入门 教程

    先感谢前人的劳动成果, 本教程中含有多处指路,请注意筛选. 详细请阅读官方文档:https://docs.oracle.com/javase/tutorial/jdbc/basics/index.ht ...

  2. 深度学习在基因组学中的应用

    深度学习(deep learning)是机器学习的一个分支,是一种以人工神经网络为架构,对数据进行表征学习的算法(简而言之就是深度学习模仿我们人类大脑运行的方式,从经验中进行学习,进而对未来接触的事物 ...

  3. JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  4. 02-JDBC学习手册:JDBC编程步骤【重点重点】

    1  注册一个 Driver 注册驱动程序有三种方式: 方式一:Class.forName("oracle.jdbc.driver.OracleDriver"); JAVA 规范中 ...

  5. 01-JDBC学习手册:JDBC概述之JDBC发展、API、驱动

    1  概述 JDBC  从物理结构上说就是 Java 语言访问数据库的一套接口集合.从本质上来说就是调用者(程序员)和实现者(数据库厂商)之间的协议.JDBC 的实现由数据库厂商以驱动程序的形式提供. ...

  6. JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  7. JDBC学习笔记01【JDBC快速入门、JDBC各个类详解、JDBC之CRUD练习】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  8. JDBC学习笔记(全)

    概述 数据持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以"固化" ...

  9. JDBC 学习笔记(一)—— 基础知识 + 分页技术

    2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" ...

最新文章

  1. Hinton新论文:如何在神经网络中表示“部分-整体层次结构”?
  2. ESP32模块的MicroPython的基本实验
  3. golang 获取切片 slice 第一个 最后一个 元素
  4. 17.抢购(秒杀)业务的技术要点
  5. vue中form表单支持回车键提交踩坑
  6. How to show out three rows from the same databand On A4?
  7. java 读取ppt文件_java使用poi读取ppt文件和poi读取excel、word示例
  8. 12产品经理要懂的-人性满足思维
  9. Java程序停止 mq通道未关闭_java – 如何在MQ上停止丢失消息
  10. Linux 字符集 en_us,Linux语言环境:en_US.UTF-8 vs en_US
  11. Flutter基础—常用控件之图片
  12. 风控中英文术语手册(银行_消费金融信贷业务)
  13. C# 访问 带密码的access数据库
  14. 读C陷阱和缺陷(C Traps and Pitfalls)(一)
  15. 夜神模拟器-软件apk存放目录
  16. 开源社区怎么玩?明星项目 TiKV 的 Maintainer 这样说……
  17. android studio中注解处理器的调试配置
  18. smart夏季的笑话
  19. PS朋友们有福了 PhotoShop CS2 最新汉化补丁出炉
  20. ShaderJoy —— 仿抖音的十字星光效果 【GLSL】

热门文章

  1. C++ Primer 5th笔记(chap 17 标准库特殊设施)输出补白
  2. 【Flask项目】项目准备之-创建模块的蓝图
  3. Beyond Compare4长期使用方法
  4. 1-Alternative Boot Flows
  5. 2022-01-01
  6. Git 查看提交历史
  7. 最大公约数+最小公倍数
  8. “不一样”的真实渗透测试案例分析
  9. C++ 反转单向链表
  10. 9、创建索引(CREATE INDEX)