1

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

<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 名称作为参数传递给查询,并尝试根据此参数动态选择选择查询。(有点像工厂设计实现)。但是 #{readerIdName} 不会被我作为参数传递的值替换。这样的事情可能吗?

4

1 回答 1

1

mybatis 在运行时不会对这个级别的 xml 属性进行评估。

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

于 2022-01-03T09:55:16.610 回答