如何将<dynamic>从ibatis迁移到mybatis </dynamic>

时间:2014-08-08 06:25:32

标签: spring dynamic mybatis ibatis

我希望从ibatis 2.0更改此内容

    UPDATE AccountData SET
        StatisticAccountingUnits=   <isNotNull property="statisticAccountingUnits">#statisticAccountingUnits#</isNotNull>   <isNull property="statisticAccountingUnits">null</isNull>,
        TotalStatisticDays=     <isNotNull property="totalStatisticDays">#totalStatisticDays#</isNotNull>   <isNull property="totalStatisticDays">null</isNull>,   
    <dynamic>
        <isNotNull property="unitPrice" prepend=", ">UnitPrice = #unitPrice#</isNotNull>
        <isNotNull property="settlementAnnexNumber" prepend=", ">SettlementAnnexNumber = #settlementAnnexNumber#</isNotNull>
    </dynamic>
    WHERE AccountDataID=#accountDataId#

到Mybatis版本3.2.7

1 个答案:

答案 0 :(得分:0)

你可以看一下 - http://mybatis.github.io/mybatis-3/dynamic-sql.html

顺便说一下,你不需要像

这样的代码

<isNotNull property="statisticAccountingUnits">#statisticAccountingUnits#</isNotNull> <isNull property="statisticAccountingUnits">null</isNull>

使用#{statisticAccountingUnits,jdbcType = NUM​​ERIC} http://mybatis.github.io/mybatis-3/sqlmap-xml.html#Parameters

  

对于所有可为空的列,JDBC都需要JDBC Type,如果为null   作为一个值传递。您可以通过阅读来自行调查   PreparedStatement.setNull()方法的JavaDocs。