我正在使用mybatis-spring并尝试从oracle映射ref游标。结果返回为空。有什么想法吗?
<select id="check" parameterType="myVO"
resultMap="VOResultMap" statementType="CALLABLE" resultType="object">
{ call MYPKG.proc_check(
#{myVO.id, javaType=String, jdbcType=VARCHAR,mode=IN},
#{myVO, mode=OUT, javaType=ResultSet, jdbcType=CURSOR, resultMap=VOResultMap}
)}
SP:
PROCEDURE proc_check (
p_id IN VARCHAR2, po_outCursor OUT SYS_REFCURSOR)
IS
BEGIN
OPEN po_outCursor FOR
SELECT * FROM MYTABLE;
END;
地图:
<resultMap id="VOResultMap" type="myVO">
<result property="action" column="ACTION" />
<result property="id" column="ID" />
<result property="name" column="NAME" />
</resultMap>
DAO:
public MyVO check(@Param("VO") MyVO myVO);
用法:
MyVO myVO = new MyVO(id);
MyVO obj = myDAO.check(myVO);
// obj is null !!
非常感谢,
最佳答案
好的,从Java方面,您需要使用地图。
在xml中设置parameterType =“ java.util.Map”
在Java中,输入“ in”参数,即map.put(“ id”,identifier);
接口现在可以返回void。
然后调用接口,如myDAO.check(myMap);。
之后调用myMap.get(“ myVO”),您将返回一个列表。