Mybatis使用问题汇总

简介: JDK1.8分组问题产生的SQL需求

JDK1.8分组问题产生的SQL需求

需求一

传入的值数据结构为:List(Map<String, String>)

Dao层的代码:

List<RecordPo> selectConditionRecord(List<Map<String, String>> list);

xml层代码:

<select id="selectConditionRecord" resultMap="BaseResultMap" parameterType="java.util.List">
    <foreach collection="list" item="item" index="index" separator=";">
        select
        *
        from
        RECORD
        <where>
            <if test="item.code != null and item.code != ''">
                code = #{item.code,jdbcType=VARCHAR}
            </if>
            <if test="item.account != null and item.account != ''">
                and account = #{item.account,jdbcType=VARCHAR}
            </if>
            <if test="item.createdate != null">
                and to_char(CREATEDATE, 'yyyy-MM-dd') = #{item.createdate,jdbcType=TIMESTAMP}
            </if>
        </where>
    </foreach>
</select>

需求二

mybatis批量更新问题
传入的值数据结构为:List(Map<String, String>)

Dao层的代码:

void batchUpdate(List<RecordPo> list);

xml层代码:

<update id="batchUpdate" parameterType="java.util.List">
    <foreach collection="list" index="index" item="item" separator=";">
        update RECORD
        <set>
            <if test="item.id != null">
                id = #{item.id,jdbcType=VARCHAR},
            </if>
            <if test="item.code != null">
                code = #{item.code,jdbcType=VARCHAR},
            </if>
            <if test="item.createuser != null">
                createuser = #{item.createuser,jdbcType=VARCHAR},
            </if>
            <if test="item.createdate != null">
                createdate = #{item.createdate,jdbcType=TIMESTAMP},
            </if>
        </set>
        <where>
            id = #{item.id,jdbcType=VARCHAR}
        </where>
    </foreach>
</update>
  • 出现的问题:
Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax;

check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE hd_t_user\n             SET username ='111' \n            where\n           ' at line 6\r\n### The error may exist in file;
  • 解决方案:
allowMultiQueries=true
目录
相关文章
|
SQL Java 数据库连接
|
5月前
|
SQL Java 数据库连接
Mybatis01
Mybatis01
40 0
|
SQL Java 数据库连接
Mybatis之discriminator(鉴别器)详解
前言 最近干了一个工作是使用discriminator去写一个新的API,那么写这个新的API原因是什么呢?原因是这样的:我们的项目使用Mybatis,我们项目中有一个实体类叫做User,在User中还含有很多别的实体类,例如Role,Permission,Address等(有经验的肯定知道这种嵌套实体类的情况,使用和)。
4166 0
|
7月前
|
SQL Java 数据库连接
|
Java 数据库连接 测试技术
Mybatis-PLUS详解
Mybatis-PLUS详解
254 0
|
SQL Java 数据库连接
|
SQL Java 关系型数据库
Mybatis详解(2)
你好看官,里面请!今天笔者讲的是 Mybatis详解(2)。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。
214 1
|
SQL XML 缓存
Mybatis详解(1)
你好看官,里面请!今天笔者讲的是Mybatis详解(1)。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。
248 2
|
算法 Java 关系型数据库
MyBatis-Plus基本的使用
MyBatis-Plus基本的使用