主に、追加および削除される戻り値のタイプと、主キーを取得する方法を含めます
最初に、jdbcは追加、削除、変更を実行します。デフォルトの戻り値の型はintです。Mybatisでサポートされている戻り値の型は、jdbcよりも強力です。次の戻り値の型は、追加、削除、変更で特にサポートされています。
int
Integer
long
Long
boolean
Boolean
void
Mybatisの戻り値を追加、削除、変更するための処理ソースコードは次のとおりです。
private Object rowCountResult(int rowCount){
最終オブジェクト結果;
if(method.returnsVoid()){
result = null;
} else if(Integer.class.equals(method.getReturnType())|| Integer.TYPE.equals(method.getReturnType())){
result = rowCount;
} else if(Long.class.equals(method.getReturnType())|| Long.TYPE.equals(method.getReturnType())){
result =(long)rowCount;
} else if(Boolean.class.equals(method.getReturnType())|| Boolean.TYPE.equals(method.getReturnType())){
result = rowCount> 0;
} else {
throw new BindingException( "Mapper method '" + command.getName()+ "'には、サポートされていない戻り型があります:" + method.getReturnType());
}
結果を返します。
}
Mybatisの戻り値は、実際にはjdbcのint型の戻り値の変換処理です。
第二に、Mybatisの主要なキー取得方法
1. jdbcの組み込みメソッドを内部で使用します。XMLファイルで設定し、useGeneratedKeysプロパティをtrueに選択タグに追加し、keyProperty:パラメータオブジェクトのプロパティ名を設定します。挿入が正常に完了すると、mybatisはリフレクションによって値を増やしますkeyPropertyに指定されたプロパティを設定します。
2.挿入後の主キーを取得するクエリ:キーコードは、主にselectKeyタグのコードの一部を追加するためのxmlファイルのsqlの書き換えです。keyPropertyは、Beanオブジェクトにマップされたフィールドを構成します。オペレーション。
SELECT LAST_INSERT_ID():レコードに挿入されたばかりの主キーの値を取得します。自己インクリメントする主キーにのみ適用されます。
<insert id = "insert" parameterType = "entity.TUser"> <selectKey keyProperty = "id" order = "AFTER" resultType = "java.lang.Long"> SELECT LAST_INSERT_ID() </ selectKey> insert into t_user( ` name`、age、salary、 sex) values(#{name、jdbcType = VARCHAR}、#{age、jdbcType = SMALLINT}、#{salary、jdbcType = DECIMAL}、 #{sex、jdbcType = TINYINT}) </挿入>
3.挿入する前に主キーを取得するクエリ:xmlのSQLステートメントは2番目のケースに似ています。キーコードもselectKey部分のステートメントであり、select部分はカスタム関数で置き換える必要があります。Last_insert_idは使用できません。
last_insert_idは、自己増加型の主キーがある場合にのみ使用できます。挿入前の主キーのクエリは、自己増加型の主キーではない場合に適用できます。どちらも、同時実行性が高い場合に問題があります。