MyBatis-メインキーの値を返します.

1330 ワード

目次
1、JDBC方式でメインキーの自己増加値を返します.
2、selectKeyを使ってキーの値を返します.
1、JDBC方式でメインキーの自己増加値を返します.
Mapper.xmlダミーコード:

insert  
useGeneratoedKeysはtrueに設定された後、MyBatisはJDBCのgetGeneratodKeys方法を使ってデータベース内部で生成されたキーを取り出します.キー値を取得し、キーProperty設定のid属性に値を付けます.
2、selectKeyを使ってキーの値を返します.
一部のデータベース(Oracleのような)は、メインキーの自己増加機能を提供しないで、シーケンスを使用して値を得て、この値をIDに割り当てて、データをデータベースに挿入します.この場合は、メインキーの値を取得するためのラベルとすることができ、この方法は、プライマリキーの自己増加機能を提供しないデータベースだけでなく、プライマリキーの自己増加機能を提供するデータベースにも適用される.
MySQLデータベースはMapper.xmlダミーコードに対応しています.

    insert   
    
        SELECT LAST_INSERT_ID()
    
OracleデータベースはMapper.xmlダミーコードに対応しています.

    
        SELECT SEQ_ID.nextval from dual
    
    insert   
selectKey要素の位置が違っています.位置が違っていても、selectKey中の方法がinsertの前または後の順序に影響を与えないことが分かります.実行順序に影響を与えるのはorder属性です.
  • MySQLは最初にデータを挿入してからホームキーを取得するため、selectKeyはinsert後に実行し、order属性はAFTERである.
  • Oracleは、最初にメインキー値をシーケンスから取り出してデータベースに挿入するので、selectKeyはinsertの前で実行し、order属性はBEFOREEである.