java jdbc返回结果集条数_java jdbc返回多个结果集,的处理类和方法

本文提供了一个JSP中使用JDBC-ODBC调用SQL Server存储过程的实例,详细解释了如何处理返回单个结果集的过程。通过设置输入参数、注册输出参数和获取结果,展示了如何执行存储过程并获取输出值和返回值。同时,讨论了Statement接口的executeQuery和execute方法的适用场景。
摘要由CSDN通过智能技术生成

1、处理存储过程返回单个结果集的范例:

/*****************************************************************************/

作者:何志强[hhzqq@21cn.com]

日期:2000-08-04

2000-08-16

版本:1.1

功能:JSP数据库操作例程   -   存储过程   -   JDBC-ODBC   -   SQL   Server

SQL   Server的存储过程如下:

create   procedure   sp_jsptest

@yourname     varchar(50),

@myname   varchar(50)   output

as

select   "您好, "+@yourname+ ",非常高兴认识您,^_^ "

set   @myname   =   "何志强 "

return   1

go

--%>

//变量声明

java.lang.String   strName;   //姓名

//取得用户输入的数据

strName   =   request.getParameter( "name ");

if(strName==null){//用户没有输入姓名

%>

JSP数据库操作例程   -   存储过程   -   JDBC-ODBC   -   SQL   Server

您尊姓大名:

}

else{

//对用户输入的数据作必要的字符编码转换

strName   =   new   java.lang.String(strName.getBytes( "iso-8859-1 "));

//变量声明

java.sql.Connection   sqlCon;                   //数据库连接对象

java.sql.CallableStatement   sqlStmt;   //可调用语句对象

java.sql.ResultSet   sqlRst;                     //结果集对象

java.lang.String   strCon;                         //数据库连接字符串

java.lang.String   strSQL;                         //SQL语句

java.lang.String   strWelcome;                 //欢迎词

java.lang.String   strMyName;                   //我的姓名

int   intReturn;                                             //返回值

//装载JDBC-ODBC驱动程序

Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");

//设置数据库连接字符串

strCon   =   "jdbc:odbc:jspdemo ";

//连接数据库

sqlCon   =   java.sql.DriverManager.getConnection(strCon, "sa ", " ");

//准备SQL语句

strSQL   =   "{?   =   call   sp_jsptest(?,?)} ";

//准备可调用语句对象

sqlStmt   =   sqlCon.prepareCall(strSQL);

//设置输入参数

sqlStmt.setString(2,strName);

//登记输出参数

sqlStmt.registerOutParameter(1,java.sql.Types.INTEGER);

sqlStmt.registerOutParameter(3,java.sql.Types.VARCHAR);

//执行该存储过程并返回结果集

sqlRst   =   sqlStmt.executeQuery();

//获取来自结果集中的数据

sqlRst.next();

strWelcome   =   sqlRst.getString(1);

//获取输出参数的值

strMyName   =   sqlStmt.getString(3);

//获取返回值

intReturn   =   sqlStmt.getInt(1);

//关闭记录集

sqlRst.close();

//关闭可调用语句对象

sqlStmt.close();

//关闭数据库对象

sqlCon.close();

%>

JSP数据库操作例程   -   存储过程   -   JDBC-ODBC   -   SQL   Server

我是

返回值是

}

%>

/*****************************************************************************/

Statement接口提供了三种执行SQL语句的方法: executeQuery、executeUpdate和execute。使用哪一个方法由SQL语句所产生的内容决定。 executeQuery   方法用语返回单个结果集 execute方法应该仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组合时使用。当执行某个已存储过程或动态执行未知SQL字符串(即应用程序程序员在编译时未知)时,有可能出现多个结果的情况,尽管这种情况很少见。例如,用户可能执行一个已存储过程,并且该已存储过程可执行更新,然后执行选择,再进行更新,再进行选择,等等。通常使用已存储过程的人应知道它所返回的内容。   因为方法execute处理非常规情况,所以获取其结果需要一些特殊处理并不足为怪。例如,假定已知某个过程返回两个结果集,则在使用方法execute执行该过程后,必须调用方法getResultSet获得第一个结果集,然后调用适当的getXXX方法获取其中的值。要获得第二个结果集,需要先调用getMoreResults方法,然后再调用getResultSet方法。如果已知某个过程返回两个更新计数,则首先调用方法getUpdateCount,然后调用getMoreResults,并再次调用getUpdateCount。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值