Mybatis Oracle存储过程
调用oracle存储过程和从oracle存储过程获取输出参数时遇到问题。 这是我的地图 AppUserMapper.javaMybatis Oracle存储过程,oracle,output,mybatis,procedure,Oracle,Output,Mybatis,Procedure,调用oracle存储过程和从oracle存储过程获取输出参数时遇到问题。 这是我的地图 AppUserMapper.java public interface AppUserMapper { @Select(value= "{ CALL sp_check_user( #{userId, mode=IN, jdbcType=VARCHAR }, #{userPwd, mode=IN, jdbcType=VARCHAR}, #{userType, jdbcType=VARCHAR,
public interface AppUserMapper {
@Select(value= "{ CALL sp_check_user( #{userId, mode=IN, jdbcType=VARCHAR }, #{userPwd, mode=IN, jdbcType=VARCHAR}, #{userType, jdbcType=VARCHAR, mode=OUT} )}")
@Options(statementType = StatementType.CALLABLE)
Object getUserType(String userId,String UserPwd);
}
Dao call
Map<String, Object> retrurnStatus = (Map<String, Object>) appUserMapper.getUserType(userId,UserPwd);
它正在执行存储过程,但给出错误
DEBUG 2014-04-12 09:51:56,948 org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl: ==> Preparing: { CALL sp_check_user( ?, ?, ? ) }
DEBUG 2014-04-12 09:51:57,103 org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl: ==> Parameters: abc(String), abc1(String)
Could not complete request
java.lang.NullPointerException
at com.appuser.dao.AppUserDaoImpl.getUserType(AppUserDaoImpl.java:33)
我一直在尝试多种选择,但找不到样本,我可以采取的是,并尝试
我将在这方面提供适当的帮助,因为我一直试图在mybatis中使用oracle存储的过程,并使用多个输入和输出参数
是否有人可以提供一个简单的示例,使用mybatis调用Oracle存储过程以获得多个输入输出参数 杰夫·巴特勒在一篇文章中说:
对于存储过程参数,MyBatis将映射输入和
将参数输出到parameterType中的属性
您可以尝试发送一个Map、POJO或三个带有userId、userPwd和userType的带注释的变量。调用SP后,MyBatis会将OUT参数设置为userType
我现在无法尝试,稍后我将尝试编辑答案。但是你能试试这些吗
1按如下方式定义函数,并在调用SP后检查userType是否已更新
void getUserType(Param("userId") String userId, Param("userPwd") String userPwd, Param("userType") String userType);
或
2创建一个映射,添加3个键值对,即userId、1234、userPwd、666、userType、null元组。调用SP后,可以尝试获取userType值
void getUserType(Map<String, Object> myMap);
此外,此处还有一个重复的问题/答案:
void getUserType(Map<String, Object> myMap);
void getUserType(UserClass userObj);