使用 IBatis for Java 将多个输出参数映射到目标对象
我正在使用 IBatis for Java (ibatis2-2.3.4) 我有一个正在调用的过程,它需要 1 个 IN 参数和 4 个 OUT 参数。我已在我的 IBatis
映射文件中进行了如下配置:
<procedure id="GENERATE_FILES" parameterMap="GENERATE_FILES_MAP">
{ call PAUL.GENERATE_FILES ( ?, ?, ?, ?, ? ) }
</procedure>
我想使用 4 个 OUT 参数在映射文件中创建目标对象。相反,根据下面的配置,OUT 对象只是在 Map 中设置,我需要在 Java 代码中创建目标对象。
<parameterMap id="GENERATE_FILES_MAP" class="java.util.Map">
<parameter property="ID" jdbcType="NUMERIC" javaType="java.lang.Long" mode="IN" />
<parameter property="CODE" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT" />
<parameter property="NAME" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT" />
<parameter property="CREATE_DT" jdbcType="DATE" javaType="java.util.Date" mode="OUT"/>
<parameter property="LINK_DT" jdbcType="DATE" javaType="java.util.Date" mode="OUT"/>
</parameterMap>
那么 - 有人知道如何使用这 4 个 OUT 参数在映射文件中创建我的目标对象吗?
谢谢, 保罗.
I am using IBatis for Java (ibatis2-2.3.4) I have a procedure which I am calling which takes 1 IN
param and 4 OUT
params. I have configured this in my IBatis
mapping file as such:
<procedure id="GENERATE_FILES" parameterMap="GENERATE_FILES_MAP">
{ call PAUL.GENERATE_FILES ( ?, ?, ?, ?, ? ) }
</procedure>
I would like to use the 4 OUT params to create my target object in my mapping file. Instead based on the configuration below the OUT objects just get set in the Map and I need to create the target object in my Java code.
<parameterMap id="GENERATE_FILES_MAP" class="java.util.Map">
<parameter property="ID" jdbcType="NUMERIC" javaType="java.lang.Long" mode="IN" />
<parameter property="CODE" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT" />
<parameter property="NAME" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT" />
<parameter property="CREATE_DT" jdbcType="DATE" javaType="java.util.Date" mode="OUT"/>
<parameter property="LINK_DT" jdbcType="DATE" javaType="java.util.Date" mode="OUT"/>
</parameterMap>
So - anybody any ideas how I could use these 4 OUT
params to create my target object within the mapping file?
Thanks,
Paul.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用具有所需五个属性的 JavaBean,而不是使用 java.util.Map 作为传递给参数 Map 的类;例如,您可以:
然后在您的parameterMap中使用它:
因此,当您使用SqlMapClient时,您将使用queryForObject()方法调用该过程,您将向其传递一个JavaBean实例,其中id属性已验证,并且将具有由查询确定的其他属性。
Instead of using a java.util.Map as the class passed to the parameters Map you can use a JavaBean with the five properties you need; for example you can have:
And then use it in your parameterMap:
So, when with you SqlMapClient you will call the procedure using the queryForObject() method you will pass an instance of you JavaBean to it with the id property valorized and will have the other properties valorized by the query.