java如何使stmt,请问存储过程若是返回结果集记录的情况下,java如何调用?

请问存储过程若是返回结果集记录的情况下,java如何调用?

即我该什么什么类型的对象来获取它?

难道是vector?还是其它?

不会是一个rs对象吧?

最好能给个具体调用的简单实例即可

急!!!!!

多谢

|

//准备SQL语句

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

//准备可调用语句对象

sqlStmt = sqlCon.prepareCall(strSQL);

//设置输入参数

sqlStmt.setString(1,strName);

//登记输出参数

sqlStmt.registerOutParameter(2,java.sql.Types.Array);

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

sqlRst = sqlStmt.executeQuery();

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

sqlRst.next();

strWelcome = sqlRst.getString(1);

//获取输出参数的值

java.sql.Array strMyName = sqlStmt.getString(2);

|

public Array getArray(String colName)

throws SQLException

Returns the value of the designated column in the current row of this ResultSet object as an Array object in the Java programming language.

Parameters:

colName - the name of the column from which to retrieve the value

Returns:

an Array object representing the SQL ARRAY value in the specified column

Since:

1.2

See Also:

What Is in the JDBC 2.0 API

|

String QQuery = "{call JG_GE(?)}";

Stmt = Conn.prepareStatement(QQuery);

Stmt.setString(1,"02");

Stmt.execute();

ResultSet rs = Stmt.getResultSet();

while(rs.next()) {

str1 = rs.getString(1);

str2 = rs.getString(2);

..........

}

rs.close();

Stmt.close();

Conn.close();

|

这要看你的存储过程返回的是什么类型的记录集,然后你用响应的接受啊,

|

别用function,用带out参数的Procedure试试

|

或许你的JDBC不支持吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于Java调用MySQL存储过程,可以使用JDBC驱动提供的CallableStatement类来实现。以下是一个示例代码,展示如何调用MySQL存储过程同时获取输出参数和结果: ```java // 假设存储过程名为test_proc,有一个输入参数和一个输出参数 String sql = "{CALL test_proc(?, ?)}"; CallableStatement cs = conn.prepareCall(sql); // 设置输入参数 cs.setString(1, "input_value"); // 注册输出参数,需要指定参数类型和输出参数位置 cs.registerOutParameter(2, java.sql.Types.VARCHAR); // 执行存储过程 ResultSet rs = cs.executeQuery(); // 处理结果 while (rs.next()) { // 处理每一行结果 } // 获取输出参数值 String outputValue = cs.getString(2); // 关闭资源 rs.close(); cs.close(); ``` 需要注意的是,输出参数的位置从1开始计数,而不是从0开始计数。在注册输出参数时,需要指定输出参数的类型,如java.sql.Types.VARCHAR表示字符串类型。 另外,如果存储过程返回多个结果,可以使用cs.getMoreResults()方法获取下一个结果。在处理完所有结果后,需要显式地调用cs.getUpdateCount()方法获取存储过程执行后影响的行数。 ### 回答2: Java调用MySQL存储过程的输出参数和结果可以通过Java JDBC驱动程序来实现。 首先,需要使用JDBC连接数据库,获取数据库连接对象Connection。然后,通过Connection创建CallableStatement对象,用于调用存储过程。在调用存储过程之前,需要设置存储过程的参数和输出模式。 对于存储过程的输出参数,可以使用registerOutParameter方法设置参数的输出模式。例如,如果存储过程的输出参数是一个整数类型,可以使用以下代码设置输出参数的模式: ```java CallableStatement cstmt = conn.prepareCall("{call stored_procedure_name(?)}"); cstmt.registerOutParameter(1, Types.INTEGER); ``` 在调用存储过程之后,可以使用get方法获取输出参数的值。例如,如果存储过程的输出参数是一个整数类型,可以使用以下代码获取输出参数的值: ```java int outputParam = cstmt.getInt(1); ``` 对于存储过程的结果,可以使用executeQuery方法执行存储过程返回ResultSet对象。例如,如果存储过程返回一个查询结果,可以使用以下代码获取结果: ```java ResultSet rs = cstmt.executeQuery(); while (rs.next()) { // 处理结果 } ``` 最后,记得在使用完CallableStatement和ResultSet之后,要关闭它们,释放资源。 总结起来,Java调用MySQL存储过程的输出参数和结果的步骤如下: 1. 创建数据库连接对象Connection。 2. 使用Connection创建CallableStatement对象,并设置存储过程的输出参数。 3. 调用存储过程,并获取输出参数的值。 4. 使用executeQuery方法执行存储过程,获取结果,并处理结果。 5. 关闭CallableStatement和ResultSet,释放资源。 需要注意的是,以上代码只是一个基本的示例,实际使用时还需要根据具体的存储过程和参数进行调整。 ### 回答3: 在Java调用MySQL存储过程的输出参数和结果,可以通过JDBC来实现。 首先,需要建立数据库连接,使用java.sql包中的DriverManager类和Connection接口。通过调用DriverManager类的getConnection方法来获取数据库连接对象Connection,传入数据库的连接信息,如URL、用户名、密码。 接下来,可以通过PreparedStatement接口来执行存储过程。使用Connection的prepareCall方法来创建一个CallableStatement对象,并传入调用存储过程的SQL语句。 对于输出参数,可以使用registerOutParameter方法将存储过程的输出参数注册到CallableStatement对象中,指定参数的索引和类型。 对于结果,可以使用execute方法来执行存储过程,然后使用getResultSet方法获得返回的结果。 最后,可以使用getXXX方法来获取输出参数的值,如getInt、getString等方法。 下面是一个示例代码片段,演示了如何调用MySQL存储过程的输出参数和结果: ```java import java.sql.*; public class MySQLStoredProcedure { public static void main(String[] args) { try { // 建立数据库连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "username", "password"); // 创建CallableStatement对象 CallableStatement stmt = conn.prepareCall("{call get_user_info(?, ?)}"); // 注册输出参数 stmt.registerOutParameter(2, Types.VARCHAR); // 执行存储过程 stmt.execute(); // 获取输出参数的值 String outputParam = stmt.getString(2); System.out.println("Output parameter: " + outputParam); // 获取结果 ResultSet rs = stmt.getResultSet(); while (rs.next()) { // 处理结果数据 int id = rs.getInt("id"); String name = rs.getString("name"); System.out.println("ID: " + id + ", Name: " + name); } // 关闭连接和结果 rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 总结起来,通过JDBC可以在Java调用MySQL存储过程的输出参数和结果。需要使用CallableStatement对象来执行存储过程,并通过registerOutParameter方法注册输出参数,使用execute方法执行存储过程并获取结果。最后,通过getXXX方法获取输出参数的值,通过遍历结果获取其中的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值