在MyBatis中動態替換表名可以通過使用動態SQL的方式來實現,具體步驟如下:
<sql id="tableName">
<!-- 可以根據條件來決定表名 -->
<!-- 例如:如果條件為true,則使用表名A,否則使用表名B -->
<if test="condition">
A
</if>
<otherwise>
B
</otherwise>
</sql>
<select id="selectById" resultType="com.example.User">
SELECT * FROM
<include refid="tableName"/>
WHERE id = #{id}
</select>
Map<String, Object> params = new HashMap<>();
params.put("condition", true); // 設置條件為true
User user = sqlSession.selectOne("com.example.UserMapper.selectById", params);
通過以上步驟,就可以動態替換表名來執行相應的SQL語句。需要注意的是,在實際應用中,可以根據具體的需求和條件來修改動態SQL塊的內容和條件設置。