MyBatisで動的なテーブル名を実現する方法は何ですか。
MyBatisの動的SQL機能を使用すると、動的なテーブル名を実装することができます。これは、異なる条件に基づいてSQL文を動的に生成するための強力な機能です。
具体の実装手順は以下の通りです:
- <選ぶ>、<もし>、<でなければ>
<select id="selectUser" resultType="User" parameterType="map">
SELECT * FROM
<choose>
<when test="tableName == 'table1'">
table1
</when>
<when test="tableName == 'table2'">
table2
</when>
<otherwise>
default_table
</otherwise>
</choose>
WHERE id = #{id}
</select>
- Javaのコードに動的なテーブル名のパラメータを渡し、条件に応じてクエリを実行するテーブルを選択する。
Map<String, Object> params = new HashMap<>();
params.put("tableName", "table1");
params.put("id", 1);
User user = sqlSession.selectOne("selectUser", params);
上記の手順に従うことで、MyBatisでテーブル名パラメータを動的に渡し、条件に応じて異なるテーブル名を選択してクエリ操作を実行することができます。