在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语句更加灵活和动态。