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/
- 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Java连载132-PreparedStatement、CallableStatement、ResultSet接
自学咖网 » Java连载132-PreparedStatement、CallableStatement、ResultSet接