Java连载132-PreparedStatementCallableStatementResultSet接
Posted 心悦君兮君不知-睿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java连载132-PreparedStatementCallableStatementResultSet接相关的知识,希望对你有一定的参考价值。
一、PreparedStatement接口
1.java.sql.PraparedStatement接口继承并扩展了Statement接口,用于执行动态的SQL语句,即包含参数的SQL语句。
PraparedStatement ps = connection.preparedStatement("select * from table_name where id>? and (name = ? or name = ?)");
ps.setInt(1,6);
ps.setString(2,"马先生");
ps.setObject(3,"李先生");
ResultSet rs = ps.executeQuery();
- 常用方法
方法 | 说明 |
---|---|
executeQuery() | 执行前面定义好的SELECT语句,并返回一个永远不能为null的ResultSet实例 |
executeUpdate() | 执行前面定义好的INSERT\\UPDATE\\DELETE语句,并且返回一个int整数型值,为同步更新记录的条数 |
SetInt(int i,int x) | 为指定参数设置int型值,对应参数的SQL类型为INTEGER |
SetLong(int i,long x) | .........long.........BIGINT |
SetFloat(int i,float x) | .............float..........FLOAT |
SetDouble(int i,double x) | ................double.............DOUBLE |
SetString(int i,String x) | ................String.............VARCHER或者LONGVARCHAR |
SetBoolean(int i,boolean x) | .................boolean.............BIT |
SetDate(int i,Date x) | ...................java.sql.Date................DATE |
SetObject(int i,Object x) | 用来设置各种类型的参数,JDBC规范定义了从Object类型到SQL类型的标准映射关系,在向数据库发送不同类型的数据库的时候,这些数据捡回转换为相应的SQL类型 |
setNull(int i,int sqlType) | 将指定参数设置为SQL中的NULL,该方法的第二个参数用来设置参数的SQL类型,具体值从java.sql.Types类中定义的静态常量中选择。 |
clearParameters() | 清除当前所有参数的值 |
二、CallableStatement接口
- java.sql.CallableStatement接口继承并扩展了PraparedStatement接口,用于执行SQL 的存储过程。
- CallabelStatement接口可以返回一个或者多个ResultSet对象,处理多个ResultSet对象的方法是从Statement中继承来的。
三、ResultSet接口
- 类似于一个数据表,通过实例可获得检索结果以及对应数据表的相关信息,例如列名类型。
- ResultSet实例通过执行查询数据库的语句生成。
- ResultSet实例具有指向当前行的指针,通过next()方法,将指针移动到下一行,有就返回true,没有就返回false。默认情况下该实例不可更新,也就是只能迭代一次。
- ResultSet接口提供了从当前行检索不同类型列值的get方法,均有两个重载方法,分别更具列的索引编号和列的名称检索列值,其中使用列的索引编号会更高效,编号从1开始。对于不同的get方法,JDBC驱动程序尝试将基础数据转换为与get方法相应的Java类型并返回。
- 常用方法:
方法 | 说明 |
---|---|
first() | 移动指针到第一行,如果结果集为空则返回false,否则返回true。如果结果集类型为TYPE_FORWARD_ONLY,将抛出异常 |
last() | .........最后一行.................. |
previous() | .........上一行,如果存在上一行则返回true,否则返回false........... |
next() | ........下一行,指针最初位于第一行之前,第一次调用该方法将移动到第一行,如果存在下一行则返回true,否则返回false |
beforeFirst() | .....ResultSet实例的开头,即第一行之前。............. |
afterLast() | .......ResultSet实例的结尾,即最后一行之后。.................. |
absolute() | ......指定行,有一个int型参数,正数表示从前向后编号,负数表示从后往前编号,编号均从1开始,如果存在指定行则返回true,否则返回false................ |
relative() | ....相对于当前行的指定行,有一个int类型入口参数,正数表示向后移动,负数表示向前移动,视当前行为0,如果存在指定行则返回true,否则返回false,............. |
- 未完待续
三、源码:
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客园:https://www.cnblogs.com/ruigege0000/
- 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流
以上是关于Java连载132-PreparedStatementCallableStatementResultSet接的主要内容,如果未能解决你的问题,请参考以下文章