MyBatisはinsert挿入操作時にプライマリ・キーIDの構成を返す



多くの場合、データベースにデータを挿入する際には、後続のupdate操作や他のテーブルにidを外部キーとして格納するために、挿入データのidを保持する必要があります.
    
ただし、デフォルトでは、insert操作はint値を返し、プライマリ・キーidではなく、現在のSQL文が影響する行数を表します.
    
次に、MyBatisがMySQLとOracleを使用してinsert挿入操作を行うときに返されるidをオブジェクトにバインドする方法を見てみましょう.
    
MySQLデータベースでは、keyProperty、keyColumn、useGeneratedKeysプロパティを設定するだけです.


     INSERT INTO students(last_name, birth)
     VALUES(#{lastName}, #{birth})

    
Oracleデータベースの場合selectKeyの使用

     
     
          SELECT my_seq.nextval FROM dual
     

     INSERT INTO students(id, last_name, birth)
     VALUES(#{id}, #{lastName}, #{birth})

 
注:Oracleの使用方法では、Oracleには自己成長という説がなく、シーケンスという自己増加を模倣する形式のみであるため、useGeneratedKeys属性は使用できません.
    
IDを取得してオブジェクトに付与する属性を使用し、insert挿入操作時にidを正常に挿入します.