MyBatis 使って何がうれしいか

業務システムでデータベースは必須と思います。

データベースといえば、SQLが必須と思います。

昔、Java始めた頃は、iBatisもMyBatisもなかったので、Javaに標準についてるjavax.sql使ってJDBC介して操作してましたので、SQLを直接ソースコードにべた書きしたり、プロパティファイルから読んだり、独自テキストファイルに記述されたのを読んだりしていて、

かなり統一性に欠ける、メンテナンス性の悪い、後で苦労することしてました。

iBatis (MyBatisの前身)を知ってから、

コードが大変短くなり、SQLをまとめて分類して置いておけ、やりたい事がJavaコードに制約されず、簡潔に速くできるようになりました。

MyBatisのxml内で、条件分岐、パラメータ以外のメタ文字も指定できるので、プログラム側で行うか、静的に行うかの選択肢が増えて、ケースバイケースな事がしやすくなります。

xml内if利用例


  <!-- 商品マスタアップロードエクセル列マッピングリスト -->
  <select id="selExcelMapList" parameterType="ParamMstMnt" resultMap="ExcelMapMap">
    
    SELECT
      ID, m.IDX_EXCEL, 
      fc_sel_columntitle('goodslist', m.NM_TBLFLD, #{cdLang}) AS NM_EXCELTXT,
      m.NM_TBLFLD, 1 AS FLG_CHECKED, 
      fc_sel_columnfld('goodslist', m.NM_TBLFLD) AS NM_JAVAFLD,
      c.NM_FORMATTER
    FROM
      m_defupldclms m
      INNER JOIN m_jqcolumn c ON (m.NM_TBLFLD = c.NM_TBLFIELD AND c.ID_GRID = 'goodslist')
    WHERE
      1 = 1 
    <if test="!isSK">
      AND c.IS_EDITABLE_CUST = 1 OR c.NM_TBLFIELD = 'CD_JAN'
    </if>    
    
    ORDER BY ID
  </select>

コメントを残す