最近在用myBatis开发是遇到一个需要得到插入数据的ID。
我原来的写法是:
<insert id="insert" parameterType="com.futureagent.entity.Navigation"
flushCache="true">
insert into zc_navigation(NavName, NavUrl,NavLevel, ParentNavID, NavNote)
values(#{name},#{url},#{level},#{parentNavId},#{note})
<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID() AS id
</selectKey>
</insert>
你可能会觉得没有错啊。
是啊,确实没有错,那为什么返回值老是1呢?
其实是因为获取值的问题,我一直以为ID是通过返回值来返回的,但是我想错了。
这个值在你插入的对象里,获取如下:
navigationService.add(navigation); //插入数据
System.out.println(navigation.getId()); //获得序列的ID