ibatis中的参数语法

Posted

技术标签:

【中文标题】ibatis中的参数语法【英文标题】:parameter syntax in ibatis 【发布时间】:2012-08-02 01:47:25 【问题描述】:

ibatis中下面的有什么区别:

当我使用第二种格式时,我得到以下异常 java.sql.SQLException:索引处缺少 IN 或 OUT 参数:: 1

1)

 UPDATE TRAN_ITEM 
            SET BOOK_HNDL_MARK_T=#marksAndNumbers#,
                MDSE_CRGO_DESC_T=#cargoDesc#, 
                UPDT_PGM_I = 'OTM-RTS' 
                WHERE 
            TRAN_ITEM_I=#instanceId#

2)

UPDATE TRAN_ITEM SET 
BOOK_HNDL_MARK_T='$marksAndNumbers$',
MDSE_CRGO_DESC_T='$cargoDesc$', 
UPDT_PGM_I = 'OTM-RTS' 
WHERE TRAN_ITEM_I='$instanceId$'

我的DAO如下:

paramMap.put("marksAndNumbers", poItemDetailVO
                        .getMarksAndNumbers());
paramMap.put("cargoDesc", poItemDetailVO.getCargoDescription());
paramMap.put("instanceId", Integer.valueOf(Long                         .toString(poItemDetailVO.getInstanceID())));

【问题讨论】:

【参考方案1】:

在第二个查询中,您将 (') 放在输入变量之前/之后。

【讨论】:

你的意思是#和$没有区别? 如果您遇到 In OUT 异常..这意味着您没有通过查询发送参数..检查您的实现..共享代码,您执行查询的位置。

以上是关于ibatis中的参数语法的主要内容,如果未能解决你的问题,请参考以下文章

ibatis语法

ibatis中的参数

ibatis中的resultClass,parameterClass,resultMap,resultType的使用与区别

iBATIS 将存储过程输出参数设置回 POJO

Spring与Ibatis整合入门

ibatis mybatis传入List参数