gpt4 book ai didi

java - 如何从MyBatis中获取值?

转载 作者:行者123 更新时间:2023-11-30 07:24:59 25 4
gpt4 key购买 nike

我在从 myBatis 检索属性时遇到问题。它说java.lang.NullPointerException 。我想要的是只得到 user_id来自使用函数将值插入数据库后自动生成的结果映射(我使用的是 oracle 10g)。

我的映射器中的代码如下

<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")是错误的,但我不确定这一点。

任何建议或提示都会非常有帮助!非常感谢!

最佳答案

从数据库获取自动生成的 key 从未标准化,因此它往往是特定于数据库的。使用 Oracle,您需要首先从序列中选择新的键值,执行插入并返回结果。 This question拥有 MyBatis 项目的真材实料。

一些最新的 Java ER 映射框架正在透明地处理这个问题。例如,Spring JDBC 模板有一个GenerateKeyHolder 对象,它抽象了数据库工作。请参阅this question举个例子。

关于java - 如何从MyBatis中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36932892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com