我正在使用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
参数在映射文件中创建我的目标对象?
谢谢, 保罗。
答案 0 :(得分:0)
不使用java.util.Map作为传递给参数Map的类,而是使用具有所需五个属性的JavaBean;例如,您可以:
public class MyClass {
private long id;
private String code;
private String name;
private Date createDate;
private Date linkDate;
// getters and setters....
}
然后在你的parameterMap中使用它:
<parameterMap id="GENERATE_FILES_MAP" class="MyClass">
<parameter property="id" jdbcType="NUMERIC" mode="IN" />
<parameter property="code" jdbcType="VARCHAR" mode="OUT" />
<parameter property="name" jdbcType="VARCHAR" mode="OUT" />
<parameter property="createDate" jdbcType="DATE" mode="OUT"/>
<parameter property="linkDate" jdbcType="DATE" mode="OUT"/>
</parameterMap>
因此,当您使用SqlMapClient时,您将使用queryForObject()方法调用该过程,您将使用id属性valorized将JavaBean的实例传递给它,并且将具有由查询赋值的其他属性。