java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > mybatis call存储过程

mybatis call存储过程调用及out的参数问题

作者:悟能不能悟

在 MyBatis 中调用存储过程并获取 OUT 参数,需通过 XML 映射文件或注解方式实现,下面通过本文给大家介绍mybatis call存储过程调用及out的参数问题,感兴趣的朋友一起看看吧

在 MyBatis 中调用存储过程并获取 OUT 参数,需通过 XML 映射文件或注解方式实现。以下是详细步骤和示例:

​核心步骤​

​示例代码​

1. Mapper 接口

public interface ProcedureMapper {
    void callProcedure(Map<String, Object> params); // 使用 Map 接收参数
}

2. XML 映射文件

<select id="callProcedure" statementType="CALLABLE">
    {call your_procedure_name(
        #{param1, mode=IN, jdbcType=INTEGER},   <!-- 输入参数 -->
        #{outParam, mode=OUT, jdbcType=INTEGER} <!-- 输出参数 -->
    )}
</select>

3. Java 调用代码

Map<String, Object> params = new HashMap<>();
params.put("param1", 100); // 设置输入参数
procedureMapper.callProcedure(params);
// 获取 OUT 参数值
Integer outValue = (Integer) params.get("outParam");
System.out.println("OUT 参数值: " + outValue);

​使用实体类代替 Map​

实体类定义

@Data // Lombok 注解,自动生成 getter/setter
public class ProcParams {
    private Integer param1;     // IN 参数
    private Integer outParam;   // OUT 参数(MyBatis 会自动填充)
}

Mapper 接口

void callProcedure(ProcParams params);

XML 映射文件

<select id="callProcedure" statementType="CALLABLE">
    {call your_procedure_name(
        #{param1, mode=IN, jdbcType=INTEGER},
        #{outParam, mode=OUT, jdbcType=INTEGER}
    )}
</select>

调用方式

ProcParams params = new ProcParams();
params.setParam1(100);
procedureMapper.callProcedure(params);
// 直接通过实体类获取 OUT 值
System.out.println("OUT 参数值: " + params.getOutParam());

​关键注意事项​

​常见问题排查​

通过以上步骤,即可在 MyBatis 中安全获取存储过程的 OUT 参数值。实际使用时,请替换存储过程名和参数名为实际值。

到此这篇关于mybatis call存储过程调用及out的参数问题的文章就介绍到这了,更多相关mybatis call存储过程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文