Java连载132-PreparedStatement、CallableStatement、ResultSet接

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() 执行前面定义好的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,………….
  • 未完待续

三、源码:

  • CSDN:https://blog.csdn.net/weixin_44630050
  • 云海天:https://www.cnblogs.com/ruigege0000/
  • 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流
    127.59
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Java连载132-PreparedStatement、CallableStatement、ResultSet接