MyBatis_sqlsession.flushStatements(作用总结;
当有处于事物中的时候
sqlSession.flushStatements();起到一种预插入的作用(执行了这行代码之后,要插入的数据会锁定数据库的一行记录,并把数据库默认返回的主键赋值给插入的对象,这样就可以把该对象的主键赋值给其他需要的对象中去了)
下面是代码跟踪过程
1.刚接收参数:可以看到这个时候id是为null的
2.刚执行为插入的时候,id也是为Null的
3.执行了sqlsession.flushStatements();之后,可以看到这个时候是有id了的,但是查看数据库,是没有这条记录的
4数据库记录
5.从下面两个图片中可以看出,传入对象和返回都是一个对象.是不是可以考虑不用赋值返回值了?反正都是指向一个地址
6