我在从myBatis中检索属性时遇到问题。它说java.lang.NullPointerException
。我想要的是从使用函数向数据库插入值(我正在使用oracle 10g)后自动生成的结果地图中获取user_id
。如何从MyBatis获取值?
我在我的映射代码如下
<resultMap type="User" id="userMap">
<result property="userId" column="user_id"/>
<result property="someProperty1" column="property_1"/>
<result property="someProperty2" column="property_2"/>
</resultMap>
<insert id="addUser" parameterType="map" statementType="CALLABLE">
{ CALL
#{userResult, javaType=java.sql.ResultSet, jdbcType=CURSOR, mode=OUT, resultMap=userMap} :=
PROJECT.create_user(
#{surname, javaType=String, jdbcType=VARCHAR, mode=IN},
#{givenName, javaType=String, jdbcType=VARCHAR, mode=IN},
#{middleName, javaType=String, jdbcType=VARCHAR, mode=IN}
)}
</insert>
这里就是java.lang.NullPointerException
发生
return Integer.parseInt(paramMap.get("userId").toString());
我使用private Map<String, Object> paramMap = new HashMap<String, Object>();
看来,我用paramMap.get("userId")
是错误的,但我不确定与此。
任何建议或提示将是非常有益的!非常感谢!
也许'paramMap'或'userId'为空,你可以调试它看看哪一个是空的。 – Blank
好的,谢谢@Reno! – chiliflavor