MyBatis进行CRUD中添加数据实现主键回填

发布时间:2023年12月19日

MyBatis进行CRUD中添加数据实现主键回填

1、创建一个mybatis项目

可以参考之前的博文mybatis首次使用并查询数据库数据
下文在该项目基础上进行优化操作,UserDao.java改名为UserMapper.java,UserDao.xml改名为UserMapper.xml,也可以不改名字内容一样。

2、实现添加数据时主键回填

在MyBatisTest.java中添加下面方法

@Test
    public void testAddUser(){
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        User user = new User();
        user.setUsername("周芷若");
        user.setPassword("111");
        user.setBirthday(new Date());
        user.setSex("女");
        user.setAddress("峨眉山");

        userMapper.addUser(user);
        System.out.println("返回自增id:"+user.getId());
        //sqlSession.commit();
    }

在UserMapper.java中添加对应的属性

void addUser(User user);

在UserMapper.xml中添加sql语句如下

<!--
        useGeneratedKeys="true":使用自增id
        keyProperty="id":回填到实体类的哪个属性
    -->
    <insert id="addUser" useGeneratedKeys="true" keyProperty="id" parameterType="cn.fpl1116.pojo.User">
        <!--
            逐渐回填(返回自增id):插入记录后返回自增的id到参数
            keyProperty="id":回填到实体类的哪个属性
            order="AFTER":先执行插入,再主键回填
            resultType="java.lang.Integer":主键的类型

        <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
            SELECT LAST_INSERT_ID()
        </selectKey>
        -->
        INSERT INTO user(username,password,birthday,sex,address) VALUES(#{username},#{password},#{birthday},#{sex},#{address})
    </insert>

运行结果如下(取消commit方法注释后就不会出现Rolling back回滚进行真实添加了):

在这里插入图片描述

文章来源:https://blog.csdn.net/qq_62124267/article/details/135095483
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。