Mybatis-の研究ノート(3)マッパーのプロフィール

1、マッパーの設定ファイルの共通の要素

   

     なparameterMap廃止され、昔ながらのスタイルのパラメータマッピング。

図2に示すように、要素を選択

   マッピングクエリ。JDBCによる前処理のために、{...}#ステートメントのパラメータは、そのようなパラメータは、SQLだろう「?」1で識別されると、新たな前処理の文に移されます。

   

   次のように属性は、select要素について説明します。

    

    

3、挿入、更新、削除

   DML文のマッピング。そして、構成を選択非常によく似ています。

   

   および構成プロパティに加えて、最も一貫性を選択し、ユニーク次のとおりです。

   

    いくつかのデータベースは、挿入後に返さ主キー値を生成しサポートし、運転支援が主キーを取得した場合は、提供することができる、keyPropertyは=「ID」「trueに」useGeneratedKeysの=を(Idは、任意であり、主に返される主キー値を受信するために使用されます)。

    データベースの種類(例えばオラクル)またはサポートされていないJDBCドライバの自動生成をサポートしていない、MyBatisのも、次の方法で主キーを生成することがあります。

     

    上記の例では、selectKey要素が実行され、SEQUENCEシーケンスを照会することによって、得られた配列は、IDの値に設定されています。

     

4、SQL

  再利用可能なを定義するためのSQLコードセグメント。他の書類に含まれてもよく、それは静的(ローディングパラメータの時)パラメータであってもよいです。

  

5、パラメータ

  それのParameterType。

 若しくは

 

6、ResultMaps

  結果は、必要なオブジェクトの開発に集中化されたデータから撮影します。

  

  1「または当社のPOJOに。

< 選択し、ID = "selectAllUser" resultTypeと= "com.lfy.bean.User" > 
    t_user SELECT * FROMを
</ 選択>

  POJO、私たちのJava Beanがデータベースのすなわちフィールドとプロパティのフィールドが矛盾しているときは、変換する必要があります(フィールドにSQL文で別名を再生することができます):

< このresultMap idは= "userResultMap" タイプ= "com.lfy.bean.User" > 
     <! - プライマリキーフィールドを指定するには、Id属性- > 
    < のid プロパティ= "ID" = "user_idを" /> 
     <! - 結果の属性を使用すると、通常のフィールドと一致する- > 
     < 結果プロパティ= "名前" = "USER_NAME" /> 
     < 結果プロパティ= "セックス" の列= "user_sex" /> 
</ このresultMapを>

    

  2「が発生した場合、テーブル間の関連性、Java Beanが、この他の巣ときJava Beanが。

      以下は、1対1の関係で、学生が唯一の1つのクラスを持っている、つまり、学生は一Clazzプロパティです。

<! - 映射学生对象的このresultMap - > 
  < このresultMap のid = "studentResultMap" タイプ= "com.lfy.bean.Student" > 
      < のid プロパティ= "ID" = "ID"  /> 
      < 結果プロパティを=」 「名前= "名前" /> 
      < 結果プロパティ= "性別" = "セックス" /> 
      < 結果プロパティ= "年齢" = "年齢" /> 
      <!- 関連マップ- > 
      < 協会プロパティ= "clazz"= "clazz_id"  
         のJavaType = "com.lfy.bean.Clazz" 
         を選択= "selectClazzWithId" /> 
    </ このresultMap > 
    
  <! - 根据班级ID查询班级- > 
  < 選択のid = "selectClazzWithId" resultTypeと= "COM .lfy.bean.Clazz」> 
      ID =#{ID} TB_CLAZZ SELECT * FROM 
  </ 選択> 
  
  <! - 查询所有学生信息- > 
  < 選択ID = "selectStudent" このresultMap = "studentResultMap" >
      SELECT * FROM TB_STUDENT 
  </ 選択>

    

    (PS:クエリが関連付けられている場合、直接のような対応するフィールドを埋め込み、「最初のオブジェクト内」フィールドにこのresultMap対応テーブルをマッピングすることができるマルチテーブルのJava Beanに関連付けられたクエリおよび他の組成物豆

< 関連プロパティ= "教師" のJavaType = "com.lfy.bean.Teacher" > 
     < ID プロパティ= "ID" = "t_id" /> 
     < 結果プロパティ= "名前" = "t_name" /> 
</ アソシエーション>

     ターンでは、すべてのクラスを確認し、各クラスの生徒全員をチェックアウト、ClazzがList <学生>のプロパティを持っていることを、複数の関係が存在します。

<! - マッピングオブジェクトクラスこのresultMap - > 
  < このresultMap ID = "clazzResultMap" タイプ= "com.lfy.bean.Clazz" > 
      < ID プロパティ= "ID" = "ID"  /> 
      <は、結果のプロパティを"=コード「=」コード「/> 
      <! - プロパティがコレクションであるように、生徒のクラスが複数あるので、学生は、クラスの属性- > 
      < コレクションプロパティ=」。学生は「のJavaType =」ArrayListを「=」上記ID " ofType =" com.lfy.bean.Student " 
      選択= "selectStudentWithId" />
    </ このresultMap > 
    
    <! - クラスIDに応じてクエリの学生- > 
    < SELECT ID = "selectStudentWithId" resultTypeと= "com.lfy.bean.Student" > 
          TB_STUDENT ID FROM =#{} clazz_id SELECT * 
    </ SELECTを> 
      
    <! - すべてのクラス情報を照会- > 
  < SELECT 上記のid = "selectClazz" このresultMapは= "clazzResultMap" > 
      SELECT * FROM TB_CLAZZ 
  </ SELECT >

   

 

おすすめ

転載: www.cnblogs.com/ZeroMZ/p/11415373.html