JDBC 学习笔记(三)
三、几个重要接口:
(1) Statement —— SQL语句执行接口
Statement接口代表了一个数据库的状态,在向数据库发送相应的SQL语句时,都需要创建Statement接口或者PreparedStatement接口。在具体应用中,Statement主要用于操作不带参数(可以直接运行)的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将这些信息返回给我们。
数据库元数据 Database MetaData 使用connection.getMetaData()获得
MetaData包括: 包含了关于数据库整体元数据信息。
结果集元数据 Result Set MetaData 使用resultSet.getMetaData()获得
比较重要的是获得表的列名、列数等信息。
结果集元数据对象: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 能自行处理,就进行异常处理。
分享到:
相关推荐
JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记
JDBC学习笔记,含代码JDBC学习笔记,含代码JDBC学习笔记,含代码黑马视频
自己的JDBC 学习笔记JDBC 学习笔记
jdbc学习笔记(PDF格式) jdbc学习笔记(PDF格式)
JDBC学习笔记! JDBC学习笔记! JDBC学习笔记! JDBC学习笔记! JDBC学习笔记! JDBC学习笔记!
jdbc学习用笔记和代码例子jdbc学习用笔记和代码例子jdbc学习用笔记和代码例子
jdbc非常完美的学习笔记 东西很全面。适合初学者。
jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子
jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子
jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子
达内jdbc学习笔记,内有三大数据(oracle,MySql,SQLServer)的不同连接方式
自己整理的传智播客jdbc学习笔记,属于原创作品
jSP JDBC 学习笔记(基础)
JDBC学习笔记(笔记+包含详细注释的代码)
JDBC学习笔记.txtJDBC学习笔记.txtJDBC学习笔记.txt
Java JDBC学习资料
JDBC 学习笔记.txt JDBC 学习笔记.txt
JDBC学习笔记(精华版)-1 很详细
jdbc学习笔记