MyBatis动态包含脚本



我正在尝试根据一些输入参数动态包含select查询。以下是我正在努力实现的目标。

<sql id="query1">
SELECT * from 
table_1
WHERE a = #{param1}
</sql>
<sql id="query2">
SELECT * from 
table_2
WHERE b = #{param2}
</sql>
<select id = "selectSomethingFromDB">
<include refid="#{readerIdName}" />
</select>

我计划将sql-id-name作为参数传递给查询,并尝试根据此参数动态选择select查询。(有点像工厂的设计实现(。但是,#{readerIdName}不会被我作为param传递的值所取代。这样的事情可能发生吗?

mybatis不会在运行时评估此级别的xml属性。

您可以在其中使用单个<SQL id="...">查询和一个<if test="...">动态sql

最新更新