MyBatisでの主キーの自動増分の設定方法はどのようになりますか?
MyBatisでは、主キーを自動増分する方法が2つ提供されています。
- データベースでの自動増加主キーの使用:データベースで主キーとして自動増加フィールドを定義し、次にMyBatisのマッピングファイルで主キーフィールドを自動生成に設定します。以下に示します:
<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user(username, password) VALUES (#{username}, #{password})
</insert>
上記の例では、useGeneratedKeys属性がtrueに設定され、keyProperty属性が主キーのフィールド名を指定しています。
- MyBatisのマッピングファイルで主キーを生成するためにUUIDを使用する:次のように、MyBatisのマッピングファイルでUUIDを使用して主キーを生成します。
<insert id="insertUser" parameterType="User">
<selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE">
SELECT REPLACE(UUID(), '-', '')
</selectKey>
INSERT INTO user(id, username, password) VALUES (#{id}, #{username}, #{password})
</insert>
上記の例では、主キーを生成するためにselectKey要素が使用され、生成された主キーの値がkeyPropertyで指定されたプロパティに設定されています。
自動増分キーまたはUUIDを使用して主キーを生成する場合、データベースでそれに対応するフィールドを定義する必要があります。