[英]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>
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.