<insert id="insert" useGeneratedKeys="true" keyProperty="menuid" parameterType="com.kjcity.sx.common.po.SysMenu" > <!-- WARNING - @mbggenerated This element is automatically generated by MyBatis Generator, do not modify. --> insert into sys_menu (menuid, code, name, sortorder, isvirtual, fatherid, url, status, menuicons, menulevel, creator, creationtime, modifier, modifiedtime, dr, ts, ismenu, path) values (#{menuid,jdbcType=INTEGER}, #{code,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{sortorder,jdbcType=INTEGER}, #{isvirtual,jdbcType=BIT}, #{fatherid,jdbcType=INTEGER}, #{url,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, #{menuicons,jdbcType=VARCHAR}, #{menulevel,jdbcType=INTEGER}, #{creator,jdbcType=INTEGER}, #{creationtime,jdbcType=TIMESTAMP}, #{modifier,jdbcType=INTEGER}, #{modifiedtime,jdbcType=TIMESTAMP}, #{dr,jdbcType=INTEGER}, #{ts,jdbcType=TIMESTAMP}, #{ismenu,jdbcType=INTEGER}, #{path,jdbcType=VARCHAR}) </insert>
我们通过 org.apache.ibatis.session.SqlSession.insert(String statement, Object parameter) 插入一个对象之后,发现返回的值是 int型,那我们需要的不是影响数据库行数,而是新增到数据库之后的主键ID,那怎么办呢?
其实只要在mapper.xml的 insert中加入以下属性就可以了。新增一个Object后,Object的id就会拥有id信息
useGeneratedKeys="true" keyProperty="menuid" menuid为主键ID