首页 > 解决方案 > mybatis中的动态sql列表

问题描述

在mybatis中,我试图通过代码生成动态sql

public String getData(@Param(value = "dataList") List<String> dataList) {

        return new SQL() {
            {
                SELECT("*");
                FROM("data_table");
                WHERE("data_id in (#{dataList})");
            }
        }.toString();
    }
}

但是这段代码不起作用。在生成的查询中,它只为列表提供一个问号(?)。

我怎样才能做到这一点?

标签: javamybatis

解决方案


您可以使用 XML.Mybatis 官方文档显示只有 xml 可以使用动态 sql.Code:

<select id="getData" resultType="">
    select * from data_table where data_id in
    <foreach item="item" collection="list" open="(" separator="," close=")">
        #{item}
    </foreach>
</select>

详细信息见http://www.mybatis.org/mybatis-3/dynamic-sql.html


推荐阅读