mybatis插入数据并返回该条数据的ID值

其xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="user">
    <!--插入并返回ID-->
    <insert id="insertUser2" parameterType="com.gyf.model.User">
        <selectKey keyProperty="id" resultType="int" order="AFTER">
            select LAST_INSERT_ID()
        </selectKey>
        insert into user (username, sex, birthday, address) value (#{username}, #{sex}, #{birthday}, #{address})
    </insert>
</mapper>

其测试代码

    @Test
    public void test5() throws IOException {
        User user = new User("lb","1",new Date(),"兰州");
        int row = session.insert("insertUser2", user);
        session.commit();
        System.out.println("userID:"+user.getId());
    }
    [selectKey标签]:通过select 查询来生成主键
	[keyProperty]:指定存放生成主键的属性
	[resultType]:生成主键所对应的Java类型
	[order]:指定该查询主键SQL语句的执行顺序,相对于insert语句
	[last_ insert_ id]: MySQL的函数,要配合insert语句- -起使用- - >

对于非自动生成的ID,也就是自己设置的,以UUID为例:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44682587/article/details/107713265