java开发

技术学习笔记

mybatis中如何获取自增主键 的方法推荐第一种

方法1:在insert标签中使用userGeneratedKeys和keyProperty标签:

<insert id=”insertname” usegeneratedkeys=”true” keyproperty=”id”>
    insert into names (name) values (#{name})
</insert> 

useGeneratedKeys = true 表示开启自动生成主键的功能,keyProperty = "id" 指定了要将自动生成的主键值赋给 id 属性。插入操作完成后,通过访问 id 属性即可获取到自动生成的主键值。



方法2:使用select标签和keyProperty

数据库主键包括自增和非自增,有时候新增一条数据不仅仅知道成功就行了,后边的逻辑可能还需要这个新增的主键,这时候再查询数据库就有点耗时耗力,我们可以采用selectKey来帮助我们获取新增的主键

<insert id="insert" parameterType="com.example.wjtweb.pojo.Goods">
    <selectKey keyProperty="id" order="AFTER" resultType="Integer">
        SELECT LAST_INSERT_ID()
    </selectKey>
    INSERT INTO Goods (MID,GNAME,PRICE,AMOUNT,imageName)
    VALUES (#{mid},#{gname},#{price},#{amount},#{imageName});
</insert> 

selectKey 元素包裹在了插入语句,并使用 keyProperty="id" 指定了要将自动生成的主键值赋给 id 属性。resultType="java.lang.Long" 指定了返回值的类型。通过执行 SELECT LAST_INSERT_ID() 语句来获取自动生成的主键值。order="AFTER" 表示 SELECT LASTINSERT ID() 在insert执行之后执行.

发表评论:

Powered By Z-BlogPHP 1.7.1

唐云飞个人日记