Mybatis获取数据库自增的主键值

在动态代理模式的xml文件中

<insert id="insertStu" parameterType="com.neuedu.bean.Student"
        useGeneratedKeys="true" keyProperty="sid">
        insert into stu1
        (sname,score,sclass) values(#{sname},#{score},#{sclass} )
    </insert>
useGeneratedKeys是代表是否使用数据库自增的值,true表示是,false表示不是,默认是不使用的。
在useGeneratedKeys=true之后,一定要加上keyProperty,keyProperty是指定获取数据库自增的主键值赋值给哪个属性。

测试:
@Test
    public void testInsertStu() {
        Student student = new Student(' ', "yr", "100", "1");
        try {
            SqlSessionFactory sqlSessionFactory = sqlSessionFactory();
            SqlSession openSession = sqlSessionFactory.openSession();
            Stu mapper = openSession.getMapper(Stu.class);
            mapper.insertStu(student);
            openSession.commit();
            openSession.close();
            // int sid = student.getSid();
            System.out.println(student);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

这样在输出的Student对象中就可以获取自增的id值了。
原文地址:https://www.cnblogs.com/xuesheng/p/7475400.html