`

使用CallableStatement接口调用存储过程

    博客分类:
  • Jdbc
阅读更多
1. CallableStatement接口的引入

CallableStatement主要是调用数据库中的存储过程,CallableStatement也是Statement接口的子接口。在使用CallableStatement时可以接收存储过程的返回值。


2. 使用CallableStatement接口调用存储过程

void registerOutParameter(int parameterIndex,int sqlType)
按顺序位置parameterIndex将OUT参数注册为JDBC类型sqlType。


DELIMITER &&
CREATE PROCEDURE pro_getBookNameById(IN bookId INT,OUT bN VARCHAR(20))
 BEGIN
    SELECT bookName INTO bn FROM t_book WHERE id=bookId;
 END 
&&
DELIMITER;

CALL pro_getBookNameById(1,@bookName);
SELECT @bookName;


TestCallableStatement.java

package com.andrew.jdbc.chap07;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Types;

import com.andrew.jdbc.util.DbUtil;

public class TestCallableStatement {
    private static DbUtil dbUtil = new DbUtil();
    // 调用存储过程,通过id查询bookName
    private static String getBookNameById(int id) throws Exception {
        Connection con = dbUtil.getConnection();
        String sql = "{CALL pro_getBookNameById(?,?)}";
        CallableStatement callableStatement = con.prepareCall(sql);
        callableStatement.setInt(1, id); // 设置第一个参数
        callableStatement.registerOutParameter(2, Types.VARCHAR); // 设置返回类型
        callableStatement.execute();
        String bookName = callableStatement.getString("bn"); // 获取返回值
        dbUtil.close(callableStatement, con);
        return bookName;
    }
    public static void main(String[] args) throws Exception {
        System.out.println("图书名称是:" + getBookNameById(1));
    }
}

运行结果:
图书名称是:java学习
分享到:
评论

相关推荐

    CallableStatement调用Oracle存储过程返回结果集(ResultSet).pdf

    在Java编程中,CallableStatement接口是用来执行SQL存储过程或函数的。在Oracle数据库中,存储过程可以接收输入参数、输出参数或两者都有,并且可能返回结果集。本篇将详细阐述如何使用CallableStatement调用Oracle...

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    我们使用 CALLABLESTATEMENT 来调用存储过程,获取游标类型参数的值,并将其转换为 ResultSet 对象。最后,我们使用 while 循环来遍历 ResultSet 对象,并将结果打印出来。 六、结论 本示例展示了如何使用 ...

    java调用存储过程(含out参数)

    3. **准备CallableStatement**:对于调用存储过程,我们需要使用`CallableStatement`对象,它是`PreparedStatement`的子类,专门用于调用数据库存储过程。通过`Connection`对象的`prepareCall()`方法创建。 4. **...

    CallableStatement调用Oracle存储过程返回结果集(ResultSet).docx

    在Java编程中,CallableStatement接口是用来执行SQL存储过程或函数的。Oracle数据库是广泛使用的数据库系统,它支持存储过程的创建和调用。本篇将详细介绍如何使用CallableStatement调用Oracle存储过程,并处理返回...

    JSP调用存储过程程序

    3. 准备CallableStatement:使用`Connection.prepareCall()`方法创建CallableStatement对象,它是执行存储过程的接口。 4. 设置参数:根据存储过程的输入参数,调用CallableStatement的`registerOutParameter()`或`...

    java调用存储过程实例

    然后,使用`CallableStatement`对象来调用存储过程。`CallableStatement`是`PreparedStatement`的子接口,专门用于执行存储过程或函数。 ```java CallableStatement cstmt = conn.prepareCall("{call adddept(?,?,?...

    JDBC 调用存储过程方法

    本篇文章将深入探讨如何使用JDBC调用存储过程。 首先,存储过程是预编译的SQL代码集合,它们封装在数据库中,可以接收输入参数,处理数据,然后返回结果或输出参数。存储过程在提高性能、增强安全性和简化复杂操作...

    Java调用存储过程--传入集合参数

    ### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...

    Java调用数据库存储过程[mysql测试通过]

    调用存储过程的关键在于使用CallableStatement接口,它是PreparedStatement的子接口,专门用于调用数据库的存储过程。以下是一个基本的调用流程: 1. 加载JDBC驱动:确保已经引入了对应数据库的JDBC驱动库,例如...

    调用存储过程(java)

    JDBC提供了一组接口和类,使得Java程序能够执行SQL语句,包括调用存储过程。主要涉及的接口有`java.sql.CallableStatement`,它是`PreparedStatement`的子接口,用于执行数据库的存储过程。 3. **CallableStatement...

    JDBC调用存储过程

    3. **创建CallableStatement对象**:`CallableStatement`是JDBC提供的用于调用存储过程的接口。使用`Connection`对象的`prepareCall()`方法创建实例,例如`CallableStatement cs = conn.prepareCall("{call sp_name ...

    hibernate query调用oracle存储过程

    在Hibernate中,调用存储过程通常通过Session对象的createNativeQuery()方法实现,这个方法用于创建原生SQL查询,可以方便地调用数据库的自定义SQL或者存储过程。以下是一个简单的示例,展示了如何调用一个不带参数...

    java调用存储过程

    调用存储过程主要通过CallableStatement接口,它是PreparedStatement的一个子接口,专为调用数据库的存储过程而设计。以下是一个简单的调用存储过程的步骤: 1. **加载驱动**:首先,我们需要加载对应数据库的JDBC...

    CallableStatement的使用(存储过程).docx

    以下是如何使用 CallableStatement 调用存储过程的详细步骤: 1. **创建存储过程**: - 在 MySQL 中,你可以使用 `CREATE PROCEDURE` 语句创建存储过程。例如,这里创建了三个不同的存储过程:p1(无参数)、p2...

    调用存储过程

    总结来说,Java调用存储过程是数据库操作中的一种常见技术,通过CallableStatement接口,我们可以方便地在Java程序中与数据库进行交互,利用存储过程带来的优势。理解并熟练掌握这一技能对于提升Java数据库编程能力...

    Java实现调用MySQL存储过程详解

    3. **调用存储过程**:使用`CallableStatement`对象来执行存储过程。对于带参数的存储过程,需要设置参数并执行`executeProcedure()`。 ```java String procedureName = "{call findAllBook(?) }"; // 例如,调用...

    Java调用存储过程的2种方法

    ### Java调用存储过程的两种方法 在Java中调用数据库中的存储过程是常见的操作之一,这不仅可以提高程序性能和代码可维护性,还可以更好地利用数据库的功能。根据提供的标题、描述以及部分内容,本文将详细介绍Java...

    java调用存储过程返回数组

    调用存储过程的Java代码通常使用`CallableStatement`接口。在例子中,`setDeathAge`方法创建了一个`CallableStatement`实例,设置参数,然后执行存储过程。`CallableStatement`的`execute`方法执行存储过程,但不...

Global site tag (gtag.js) - Google Analytics