sqlMap配置1:<insert id="insert" parameterType="org.learn.baseframe.entity.SysUser" useGeneratedKeys="true" keyProperty="id">
    insert into t_sys_user (su_username, su_password, su_name, su_sex)
    values (#{username,jdbcType=NVARCHAR}, #{password,jdbcType=NVARCHAR}, #{name,jdbcType=NVARCHAR}, 
      #{sex,jdbcType=NVARCHAR})
  </insert>使用 sysUser.getId() 可以得到值sqlMap配置2: <insert id="insert" parameterType="org.learn.baseframe.entity.SysUser">
    <selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >
    insert into t_sys_user (su_username, su_password, su_name, su_sex)
    values (#{username,jdbcType=NVARCHAR}, #{password,jdbcType=NVARCHAR}, #{name,jdbcType=NVARCHAR}, #{sex,jdbcType=NVARCHAR})
SELECT SCOPE_IDENTITY()
      </selectKey>
  </insert>使用 sysUser.getId() 可以得到值sqlMap配置3:   <insert id="insert" parameterType="org.learn.baseframe.entity.SysUser">
    <selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >
      SELECT SCOPE_IDENTITY()
    </selectKey>
    insert into t_sys_user (su_username, su_password, su_name,su_sex)
    values (#{username,jdbcType=NVARCHAR}, #{password,jdbcType=NVARCHAR}, #{name,jdbcType=NVARCHAR}, 
      #{sex,jdbcType=NVARCHAR})
  </insert>
使用 sysUser.getId() 得到的却是null值因为sqlmap.xml是用mybatis-generator工具生成的,生成的配置是sqlMap配置3的配置,不想手工更改配置文件,各位大大,看看为什么是null值啊!!!MyBatisselect

解决方案 »

  1.   

    <insert id="insert" parameterType="org.learn.baseframe.entity.SysUser">
        <selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >
          SELECT SCOPE_IDENTITY()
        </selectKey>改为
    <insert id="insert" parameterType="org.learn.baseframe.entity.SysUser" useGeneratedKeys="true" keyProperty="id">
    ……
    看下
      

  2.   

    配置2 得到的rows值居然是-1 只有配置1的既可以得到主键值,返回的值rows也是1