三、几个重要接口:
(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() ;
(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() ;