統合Mybatis


詳細
Mybatisは以前のhibernateに代わってhibernateのいくつかの利点を選んだが,一対多と多対一のマッピング特徴を切り落とした.公式文書の説明に従います.
参照
MyBatisは、SQLのカスタマイズ、ストレージ・プロシージャ、および高度なマッピングをサポートする優れた永続層フレームワークです.MyBatisは、ほとんどのJDBCコードと手動でパラメータを設定し、結果セットを取得することを回避します.MyBatisは、コンフィギュレーションおよびオリジナルMapに対して簡単なXMLまたは注釈を使用して、インタフェースとJavaのPOJOs(Plain Old Java Objects、通常のJavaオブジェクト)をデータベース内のレコードにマッピングすることができます.
私はstartSpringプロジェクトで一時的に怠け者ロードを使用していません.最初の統合の過程で、daoimpでstartmentIdを自分で呼び出しましたが、mapper.xmlのnamespaceが同じdaoインタフェースクラスにマッピングされると、daoのbeanが自動的にインスタンス化されることに気づき、namespaceを修正し、daoImpを削除し、Interface basedaoを使用しました.通常クラスのdaoにこのインタフェースを継承させてスーパーインタフェースとし,重複書き込みインタフェースを回避する.
動的SQLを構築する過程で、テーブル間のフィールドの重複を回避することは難しいため、resultMapでassicationのselectを使用してさらにクエリーを行い、クエリー条件ではincludeを使用することで、フィールド名の重複の問題も解決します.クエリー条件はほとんどのフィールドに関連しますが、削除と更新の条件はkey IDに基づいて更新と削除が行われることが多く、クエリーはページングとソート処理が行われますが、削除の更新は行われず、queryConditionsとdeleteConditionsは分離されます.
新規および更新操作の場合、入力パラメータはmapまたはlistに設定され、主に一括更新および一括新規化のために設定され、where$key=#{value}などの一部のフィールド更新操作を収容することができる.パラメータ上のことは、intタイプが入ってきたら、書いても
parameterType="java.util.Map"
も値取りに影響しませんが、intに入力した場合は以下のコードを書きます.
and memberid=#{memberid,javeType=INTEGER}
判断中にエラーが発生し、integerにmemberidがないことを示します.これも私がはっきり考えていない点です.
は、バッチ・オペレーションで使用される重要な部分です.
github: http://github.com/leechedan/startSpring/mybatis