簡體   English   中英

中的mybatis動態sql列表

[英]mybatis dynamic sql list in

在mybatis中,我試圖通過代碼生成動態sql

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

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

但是此代碼不起作用。 在生成的查詢中,它只為列表提供一個問號(?)。

我該如何實現?

您可以使用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

StringBuilder sb = new StringBuilder("data_id in ("); for (int i = 0; i < ids.size(); i++) { if (i > 0) { sb.append(','); } sb.append("#{dataList[").append(i).append("]}"); } sb.append(')'); WHERE(sb.toString());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM