在MyBatis中动态表名的实现可以通过使用MyBatis动态SQL的功能来实现。以下是一种实现方式:
<select id="selectById" parameterType="java.lang.Long" resultType="com.example.User">
SELECT * FROM ${tableName} WHERE id = #{id}
</select>
public User getUserById(Long id, String tableName) {
Map<String, Object> params = new HashMap<>();
params.put("id", id);
params.put("tableName", tableName);
return userMapper.selectById(params);
}
通过以上方式就可以实现在MyBatis中动态传入表名的功能。需要注意的是在动态传入表名时要注意防止SQL注入攻击,可以通过对tableName进行一些校验或者过滤来保证安全。