自增主键
<insert id="saveOne" parameterType="com.buwei.entity.User" >
INSERT into user(name, password) value(#{name},#{password})
<selectKey keyProperty="id" order="AFTER" resultType="int">
select last_insert_id()
</selectKey>
</insert>
<insert id="saveOne" parameterType="com.buwei.entity.User" useGeneratedKeys="true" keyProperty="id">
INSERT into user(name, password) value(#{name},#{password})
</insert>
SELECT LAST_INSERT_ID():得到刚 insert 进去记录的主键值,只适用与自增主键
keyProperty:将查询到主键值设置到 parameterType 指定的对象的那个属性
order:SELECT LAST_INSERT_ID() 执行顺序,相对于 insert 语句来说它的执行顺序
resultType:指定 SELECTLAST_INSERT_ID() 的结果类型
注:新增多条时,只会返回第一条插入的数据
使用useGeneratedKeys生成主键时,不能在DAO层使用@Param注解传递参数,否则无法获取主键
uuid主键
<insert id="insert" parameterType="User">
<selectKey keyProperty="userId" resultType="java.lang.String" order="BEFORE">
select uuid()
</selectKey>
INSERT INTO ll_user
(user_id, name)
VALUES
(#{userId}, #{name})
</insert>