users表id是自增列,插入数据后获取最新id。

insert users(username,sex,birthday,address)
values('赵云','1','2000-10-01','常山');
select last_inset_id();

而UserMapp.xml设置

    <insert id="addUser" parameterType="com.company.pojo.Users">
        <!--
              selectKey 标签用来获取最新id
              order="AFTER" 表示在增加语句执行之后执行标签体中要执行的sql语句
               keyProperty="id" 要将查出来的数据放置对象的哪个属性中
               resultType="int" 查询出来数据的类型
         -->
        <selectKey keyProperty="id" order="AFTER" resultType="int">
               select last_insert_id()
        </selectKey>
        insert into users(username,sex,birthday,address)
        values(#{username},#{sex},#{birthday},#{address})
    </insert>

测试

    @Test
    public void saveUser() throws Exception{
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        inputStream.close();
        SqlSession sqlSession = sqlSessionFactory.openSession();
        Users user=new Users();
        user.setUsername("刘备");
        user.setSex('1');
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
        user.setBirthday(simpleDateFormat.parse("2019-10-28"));
        user.setAddress("四川");
        int count = sqlSession.insert("com.company.mapper.UserMapper.addUser",user);
        System.out.println("影响行数:"+count);
        System.out.println(user);
        sqlSession.commit();
        sqlSession.close();
    }

这样就可以查找新增id值赋值到user对象的id属性。

 

 posted on 2019-07-31 20:51  会飞的金鱼  阅读(812)  评论(0)    收藏  举报