如何通过MyBatis将XML字符串作为输入参数映射到存储过程?

时间:2013-08-27 19:12:31

标签: java sql-server xml stored-procedures mybatis

我一直在努力将XML字符串作为输入参数发送到SQL Server存储过程,该过程通过Java中的MyBatis映射接口调用。我的映射定义如下:

@Update(value = "{ call prcFoo(" +
                "#{ stringValue, jdbcType=VARCHAR, mode=IN }," +
                "#{ xmlValue, jdbcType=CLOB, mode=IN } ) }") 
@Options(statementType = StatementType.CALLABLE)
Integer sendXML(@Param("stringValue") String stringValue, 
                   @Param("xmlValue") String xmlValue);

映射返回整数值,而不是结果集。当我使用此映射进行调用时,我收到过程错误条件(负整数)。在XML中读取似乎是一个问题,因为当我使用相同的XML字符串直接在数据库上调用该过程时,它会返回预期的值。我错误地使用MyBatis,还是其他错误?

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用XML数据类型而不是字符串

http://technet.microsoft.com/en-US/library/ms189887(v=sql.90).aspx