Mybatisで暗黙の型変換
MyBatisでの暗黙の型変換について説明します。
暗黙の型変換とは
MyBatisでは、SQL文のパラメータや結果セットのデータ型が異なる場合に、JavaとSQL間での型変換が行われます。
これを「暗黙の型変換」と呼びます。
MyBatisは、SQL文に指定された型とJavaの型が一致しない場合でも、自動的に適切な変換を行います。
例: test_userテーブルを使った型変換
例えば、test_userというテーブルがあり、次のようなSQL文があるとします。
SELECT * FROM test_user WHERE user_id = #{userId}
ここで、userIdはJava側のInteger型の変数とします。
一方で、SQLのuser_idカラムはBIGINT型だとします。
この場合、MyBatisはInteger型のuserIdを自動的にBIGINT型に変換してSQL文を実行します。
逆に、結果セットから取得したBIGINT型の値はInteger型のプロパティに自動的に変換されます。
別の例: test_orderテーブルを使った型変換
さらに、test_orderというテーブルにorder_dateというDATE型のカラムがあるとします。
JavaのLocalDate型のプロパティにマッピングする場合、MyBatisはLocalDateとDATE型の間での変換を自動的に行います。
SQL文は以下のようになります。
SELECT * FROM test_order WHERE order_date = #{orderDate}
ここで、orderDateはLocalDate型の変数です。
MyBatisは、LocalDate型の値をDATE型に変換してSQL文を実行します。
まとめ
MyBatisの暗黙の型変換機能により、JavaとSQLの型が異なっていても、手動で型変換を行う必要がありません。
これにより、データの型変換を気にせずに、簡単にデータベースとのやり取りができます。