MyBatis-メインキーの値を返します.
1330 ワード
目次
1、JDBC方式でメインキーの自己増加値を返します.
2、selectKeyを使ってキーの値を返します.
1、JDBC方式でメインキーの自己増加値を返します.
Mapper.xmlダミーコード:
2、selectKeyを使ってキーの値を返します.
一部のデータベース(Oracleのような)は、メインキーの自己増加機能を提供しないで、シーケンスを使用して値を得て、この値をIDに割り当てて、データをデータベースに挿入します.この場合は、メインキーの値を取得するためのラベルとすることができ、この方法は、プライマリキーの自己増加機能を提供しないデータベースだけでなく、プライマリキーの自己増加機能を提供するデータベースにも適用される.
MySQLデータベースはMapper.xmlダミーコードに対応しています. MySQLは最初にデータを挿入してからホームキーを取得するため、selectKeyはinsert後に実行し、order属性はAFTERである. Oracleは、最初にメインキー値をシーケンスから取り出してデータベースに挿入するので、selectKeyはinsertの前で実行し、order属性はBEFOREEである.
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属性です.