MyBatis提供了两种方式来设置主键自增。
<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user(username, password) VALUES (#{username}, #{password})
</insert>
在上述例子中,useGeneratedKeys
属性被设置为true
,keyProperty
属性指定了主键字段的名称。
<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来生成主键都需要在数据库中定义相应的字段。