03-JDBC学习手册:JDBC中几个重要接口和异常处理
一、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异常处理
比如:① 传输的 SQL 语句语法的错误;
③ SQL 语句中使用了错误的函数。
SQLException 提供以下方法:
getNextException() —— 用来返回异常栈中的下一个相关异常;
getErrorCode() —— 用来返回代表异常的整数代码 (error code);
getMessage() —— 用来返回异常的描述信息 (error message)。
2. SQLWarning 类:用来处理不太严重的异常情况,也就是一些警告性的异常。其提供的方法和使用与 SQLException 基本相似。
A. throws 处理不了,或者要让调用者知道,就 throws;
B. try … catch 能自行处理,就进行异常处理。
03-JDBC学习手册:JDBC中几个重要接口和异常处理相关推荐
- JDBC学习总结 -- JDBC 快速入门 教程
先感谢前人的劳动成果, 本教程中含有多处指路,请注意筛选. 详细请阅读官方文档:https://docs.oracle.com/javase/tutorial/jdbc/basics/index.ht ...
- 深度学习在基因组学中的应用
深度学习(deep learning)是机器学习的一个分支,是一种以人工神经网络为架构,对数据进行表征学习的算法(简而言之就是深度学习模仿我们人类大脑运行的方式,从经验中进行学习,进而对未来接触的事物 ...
- JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- 02-JDBC学习手册:JDBC编程步骤【重点重点】
1 注册一个 Driver 注册驱动程序有三种方式: 方式一:Class.forName("oracle.jdbc.driver.OracleDriver"); JAVA 规范中 ...
- 01-JDBC学习手册:JDBC概述之JDBC发展、API、驱动
1 概述 JDBC 从物理结构上说就是 Java 语言访问数据库的一套接口集合.从本质上来说就是调用者(程序员)和实现者(数据库厂商)之间的协议.JDBC 的实现由数据库厂商以驱动程序的形式提供. ...
- JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- JDBC学习笔记01【JDBC快速入门、JDBC各个类详解、JDBC之CRUD练习】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- JDBC学习笔记(全)
概述 数据持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以"固化" ...
- JDBC 学习笔记(一)—— 基础知识 + 分页技术
2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法: 1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题 2.快捷"查找" ...
最新文章
- Hinton新论文:如何在神经网络中表示“部分-整体层次结构”?
- ESP32模块的MicroPython的基本实验
- golang 获取切片 slice 第一个 最后一个 元素
- 17.抢购(秒杀)业务的技术要点
- vue中form表单支持回车键提交踩坑
- How to show out three rows from the same databand On A4?
- java 读取ppt文件_java使用poi读取ppt文件和poi读取excel、word示例
- 12产品经理要懂的-人性满足思维
- Java程序停止 mq通道未关闭_java – 如何在MQ上停止丢失消息
- Linux 字符集 en_us,Linux语言环境:en_US.UTF-8 vs en_US
- Flutter基础—常用控件之图片
- 风控中英文术语手册(银行_消费金融信贷业务)
- C# 访问 带密码的access数据库
- 读C陷阱和缺陷(C Traps and Pitfalls)(一)
- 夜神模拟器-软件apk存放目录
- 开源社区怎么玩?明星项目 TiKV 的 Maintainer 这样说……
- android studio中注解处理器的调试配置
- smart夏季的笑话
- PS朋友们有福了 PhotoShop CS2 最新汉化补丁出炉
- ShaderJoy —— 仿抖音的十字星光效果 【GLSL】