mybatis中调用oracle的函数或者存储过程
先看下图

关于statementType 的三种可选值
| 值 | JDBC 对应类 | 使用场景 | 性能特点 |
|---|---|---|---|
| STATEMENT | java.sql.Statement | 简单静态 SQL | ❌ 最低效 |
| PREPARED | java.sql.PreparedStatement | 默认值,动态 SQL | ✅ 高效安全 |
| CALLABLE | java.sql.CallableStatement | 存储过程/函数调用 | ✅ 特定场景最优 |
想要调用函数或者存储过程,statementType必须设置为"CALLABLE"!!!
不然MyBatis 会尝试用 PreparedStatement 执行,那么就会导致输出参数无法正确获取以及数据库可能抛出执行错误
具体执行流程看下图

注意事项:
输出参数必须指定 jdbcType
浙公网安备 33010602011771号