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注入的风险,需要确保传入的表名是可信的。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: Mybatis tenant数据隔离怎样保证安全