欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis保存操作的小细节

程序员文章站 2024-02-28 13:21:16
...

@[TOC]Mybatis保存操作的小细节-获取保存数据的id(select last_insert_id())

原来的保存数据dao.xml

<!--保存用户-->
    <insert id="saveUser" parameterType="com.itheima.domain.User">  <!--parameterType参数类型values(参数)-->
        insert into user(username,birthday,sex,address)values(#{username},#{birthday},#{sex},#{address});
    </insert>

如果想在插入数据成功之后获取id的值,则在xml中加入如下代码

<selectKey keyProperty="id" keyColumn="id" order="AFTER" resultType="java.lang.Integer">
            select last_insert_id();
        </selectKey>

总的dao.xml

<!--保存用户-->
    <insert id="saveUser" parameterType="com.itheima.domain.User">  <!--parameterType参数类型values(参数)-->
        <selectKey keyProperty="id" keyColumn="id" order="AFTER" resultType="java.lang.Integer">
            select last_insert_id();
        </selectKey>
        insert into user(username,birthday,sex,address)values(#{username},#{birthday},#{sex},#{address});
    </insert>

keyProperty:表示实体类的id
keyColumn:表示数据库表的id
order:表示插入之后的行为(什么时候进行操作)
resultType:返回值的类型

测试类:

 /*
    * 测试保存数据*/
    @Test
    public void testSave(){
        User user = new User();
        user.setUsername("mybatis last_insert");
        user.setAddress("黑龙江");
        user.setBirthday(new Date());
        user.setSex("男");
        System.out.println("保存之前"+user);
        //5.执行保存方法
        userDao.saveUser(user);
        System.out.println("保存之后"+user);
    }

Mybatis保存操作的小细节