在MyBatis中處理動態表名和列名可以使用動態SQL語句和動態SQL標簽來實現。以下是一個示例:
<select id="selectUserById" parameterType="map" resultType="User">
SELECT * FROM
<if test="tableName == 'user1'">
user1
</if>
<if test="tableName == 'user2'">
user2
</if>
WHERE id = #{id}
</select>
在這個示例中,使用<if>
標簽根據傳入的參數tableName
的值來動態選擇表名。
<select id="selectUserById" parameterType="map" resultType="User">
SELECT
<choose>
<when test="columnName == 'name'">
name
</when>
<when test="columnName == 'age'">
age
</when>
<otherwise>
*
</otherwise>
</choose>
FROM user
WHERE id = #{id}
</select>
在這個示例中,使用<choose>
、<when>
和<otherwise>
標簽來根據傳入的參數columnName
的值動態選擇列名。
通過動態SQL語句和標簽,可以方便地處理動態表名和列名的情況,使得SQL語句更加靈活和動態。