Java连载132-PreparedStatement、CallableStatement、ResultSet接

一、PreparedStatement接口 1.java.sql.PraparedStatement接口继承并扩展了Statement接口,用于执行动态的SQL语句,即包含参数的SQL语句。 PraparedStatement ps = connection.preparedStatem...

一、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() 执行前面定义好的INSERTUPDATEDELETE语句,并且返回一个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,.............
  • 未完待续

三、源码:

  • 发表于 2020-07-27 10:00
  • 阅读 ( 73 )
  • 分类:网络文章

条评论

请先 登录 后评论
不写代码的码农
小编

篇文章

作家榜 »

  1. 小编 文章
返回顶部
部分文章转自于网络,若有侵权请联系我们删除