gpt4 book ai didi

java - 使用 MyBatis 动态选择 SQL 语句

转载 作者:行者123 更新时间:2023-11-30 04:11:28 25 4
gpt4 key购买 nike

我希望在 Oracle 12g 数据库中使用 mybatis 进行动态 sql 语句,在其中我可以利用 HashMap 来添加如下所示的条件:

<select id="getUsers" resultType="hashmap" parameterType="hashmap"> 
select *
from users
<where>
<iterate var="i=0" increment>
${columni} like #{valuei}
</iterate>
</where>
</select>

我有办法完成这样的事情吗?

最佳答案

来自documentation :

String Substitution

By default, using the #{} syntax will cause MyBatis to generate PreparedStatement properties and set the values safely against the PreparedStatement parameters (e.g. ?). While this is safer, faster and almost always preferred, sometimes you just want to directly inject a string unmodified into the SQL Statement. For example, for ORDER BY, you might use something like this:

ORDER BY ${columnName}

Here MyBatis won't modify or escape the string.

这允许您例如将列名作为参数传递给查询等。

请记住始终清理直接粘贴到 SQL 的数据。

<小时/>

如果需要为 WHERE 生成多个条件子句,使用 <where>标记为 <foreach>里面。请注意<foreach>具有允许指定分隔符、开始/结束字符串等的高级属性。与 ${} 结合使用我之前提到过的符号允许构造动态 WHERE条款。有关示例,请参阅this answer .

关于java - 使用 MyBatis 动态选择 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19500425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com