zoukankan      html  css  js  c++  java
  • 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,.............
    • 未完待续

    三、源码:

  • 相关阅读:
    高斯过程回归
    第一行代码读书笔记3+错误分析
    多项式各种操作
    [BZOJ3625] [Codeforces Round #250]小朋友和二叉树
    [BZOJ2055] 80人环游世世界
    [BZOJ3698] XWW的难题
    [BZOJ3456] 城市规划
    分治FFT
    [BZOJ5306] [HAOI2018]染色
    [BZOJ3380] [USACO2004 Open]Cave Cows 1 洞穴里的牛之一
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/13383070.html
Copyright © 2011-2022 走看看