MyBatis 動的テーブル名 実装方法と注意点

MyBatisの動的テーブル名の実装は、MyBatisの動的SQL機能を使用して実現できます。以下は1つの実装方法です。

  1. 最初、MyBatisのMapperファイルで動的なテーブル名のパラメータを定義します。例えば:
<select id="selectById" parameterType="java.lang.Long" resultType="com.example.User">
    SELECT * FROM ${tableName} WHERE id = #{id}
</select>
  1. Javaのコードで、MyBatisのインターフェースメソッドを呼び出すことで、動的なテーブル名のパラメータを渡すことができます。例えば、
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の検証やフィルタリングを行うことで安全性を確保する必要があります。

bannerAds