启动流程的时候没注意到这里是一个空值,在学习mybatis过程中我们知道mybatis是不能够获取自动生成的主键id的,而这里必须获取到id,所以需要用到一个主键回填机制
下面是mybatis自己生成的mapper.xml中的代码
<insert id="insert" parameterType="com.git.oa.pojo.Baoxiaobill" >
insert into baoxiaobill (id, money, title,
remark, creatdate, state,
user_id)
values (#{id,jdbcType=INTEGER}, #{money,jdbcType=DECIMAL}, #{title,jdbcType=VARCHAR},
#{remark,jdbcType=VARCHAR}, #{creatdate,jdbcType=TIMESTAMP}, #{state,jdbcType=INTEGER},
#{userId,jdbcType=INTEGER})
</insert>
并没有主键回填,结果就会出现图片上那样的null,但是我们在实际开发过程中往往需要用到这个id,所以就需要一个主键回填的机制,修改后的代码块,添加了主键回填
<insert id="insert" parameterType="com.git.oa.pojo.Baoxiaobill" >
insert into baoxiaobill (id, money, title,
remark, creatdate, state,
user_id)
values (#{id,jdbcType=INTEGER}, #{money,jdbcType=DECIMAL}, #{title,jdbcType=VARCHAR},
#{remark,jdbcType=VARCHAR}, #{creatdate,jdbcType=TIMESTAMP}, #{state,jdbcType=INTEGER},
#{userId,jdbcType=INTEGER})
<!-- 用于主键的回填 -->
<selectKey keyProperty="id" resultType="int" order="AFTER">
select last_insert_id()
</selectKey>
</insert>
希望能够帮到遇到相同问题的初学者