MyBatisのuseGeneratedKeysパラメータの使い道は何ですか。
MyBatisで、useGeneratedKeysパラメータは、挿入操作後に生成された主キー値を返すかどうかを指定するために使用されます。trueに設定すると、MyBatisは生成された主キー値を挿入されたオブジェクトに設定し、挿入操作後に新規挿入レコードの主キー値を直接取得できるようにします。
通常、データベースは主キーのフィールドに一意の値を自動的に生成します。例えば、自動増分の整数やUUIDなどです。useGeneratedKeysパラメータをtrueに設定することで、MyBatisは自動的に生成された主キーの値を対応するオブジェクトのプロパティに割り当ててくれるため、後続の操作が容易になります。
以下のサンプルコードをご確認ください。
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
@Options(useGeneratedKeys = true, keyProperty = "id")
int insertUser(User user);
この例では、useGeneratedKeysがtrueに設定され、keyProperty = “id”で生成された主キー値がUserオブジェクトのidプロパティに割り当てられるように指定されています。つまり、挿入操作後、user.getId()メソッドを使って新しい挿入レコードの主キー値を直接取得できます。