java - 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();
}
}
但是这段代码不起作用。在生成的查询中,它只为列表提供一个问号(?)。
我怎样才能做到这一点?
解决方案
您可以使用 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>
推荐阅读
- javascript - 如何在 Asp .Net Core 中设置序列化
- updates - 如何更新特定商店的产品价格?
- reactjs - TypeError:无法读取未定义 ReactJS 的属性“validateFields”
- java - Flink:java.lang.ClassNotFoundException:org.apache.flink.api.common.serialization.DeserializationSchema
- mysql - 查询以在 MySQL 中将 Varchar HH:MM 转换为整数分钟
- javascript - 基于多个条件的jquery下拉框
- java - 使用 Eclipse 自动化时出现对象错误 Firefox
- kubernetes - 如果底层存储池 fs 是 ZFS,OpenEBS Jiva 是否支持?
- c# - RabbitMQ 错误:.Client.Exceptions.BrokerUnreachableException:指定的端点均不可访问
- html - 将图像与中间的文本对齐(响应式)