MyBatis提供了動態替換表名的方法,可以使用動態SQL來實現。下面是使用動態SQL替換表名的步驟:
<sql>
標簽定義一個表名的變量,例如:<sql id="tableName">
my_table
</sql>
${}
語法引用表名變量,例如:SELECT * FROM ${tableName}
@Param
注解標記的對象,例如:List<User> getUsersByTableName(@Param("tableName") String tableName);
<select id="getUsersByTableName" resultType="User">
SELECT * FROM ${tableName}
</select>
List<User> users = userMapper.getUsersByTableName("my_table");
通過以上步驟,可以實現動態替換表名的功能。在運行時,MyBatis會將表名變量替換為實際的表名。注意,使用動態SQL替換表名可能存在SQL注入的風險,需要確保傳入的表名是可信的。