-
Java连载132-PreparedStatement、CallableStatement、ResultSet接
一、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/p/13383070.html
最新更新
带有参数的装饰器
类装饰器
django中的auth模块与admin后台管理
python的日期处理
字符串常用方法
基本数据类型概述
python-map()函数基本用法
python带你实现任意下载AcFun视频数据~
bbs项目之注册功能
变量的定义和使用
三大常用数据库事务详解之三:事务运行
三大常用关系型数据库事务详解之二:基
三大关系型数据库事务详解之一:基本概
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
VB.NET中如何快速访问注册表
ASP.NET中图象处理过程详解
Vue(1)Vue安装与使用
JavaScript 语言入门
js将一段字符串的首字母转成大写
纯原生html编写的h5视频播放器
H5仿原生app短信验证码vue2.0组件附源码地
TypeScript(4)接口
TypeScript(3)基础类型
TypeScript(2)WebStorm自动编译TypeScript配置