在动态代理模式的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值了。