在MyBatis中,可以通過<foreach>
標簽結合HashMap來實現動態表名的功能。
首先,在Mapper接口中定義一個方法,接受一個Map參數,其中包含要動態使用的表名信息。例如:
public interface UserMapper {
List<User> selectUsersByTableName(Map<String, Object> map);
}
然后在Mapper XML文件中使用<foreach>
標簽來實現動態表名的功能。例如:
<select id="selectUsersByTableName" resultType="User">
SELECT * FROM
<foreach collection="tableNames" item="tableName" separator="," open="(" close=")">
${tableName}
</foreach>
</select>
最后,在Java代碼中調用Mapper接口方法時,傳入包含動態表名信息的HashMap參數。例如:
Map<String, Object> map = new HashMap<>();
List<String> tableNames = new ArrayList<>();
tableNames.add("user_table");
tableNames.add("admin_table");
map.put("tableNames", tableNames);
List<User> users = userMapper.selectUsersByTableName(map);
通過以上步驟,就可以實現動態表名的功能。在Mapper XML中使用<foreach>
標簽遍歷HashMap中的表名信息,動態拼接SQL語句,從而實現動態表名查詢的功能。