Mybatisで別スキーマを使用する方法

Mybatisで別スキーマを使用する方法

Mybatisで別スキーマを使用する方法について、以下のような例が考えられます。

1. 別スキーマの設定

異なるスキーマを参照する場合、XMLマッピングファイルでスキーマを指定する必要があります。
例えば、test_userテーブルがschema1スキーマに存在し、test_orderテーブルがschema2スキーマに存在する場合、次のように設定します。

<select id="selectUser" parameterType="int" resultType="test_user">
    select * from schema1.test_user
    where user_id = #{userId}
</select>

<select id="selectOrder" parameterType="int" resultType="test_order">
    select * from schema2.test_order
    where order_id = #{orderId}
</select>

2. 別スキーマを使った結合クエリ

異なるスキーマのテーブルを結合する場合、クエリ内で完全修飾テーブル名を使用します。

<select id="selectUserAndOrder" parameterType="int" resultType="map">
    select u.*, o.*
    from schema1.test_user u
    join schema2.test_order o on u.user_id = o.user_id
    where u.user_id = #{userId}
</select>

このように、異なるスキーマのテーブルを参照する場合は、テーブル名の前にスキーマ名を指定することで対応できます。