mybatis 为什么得不到返回的主键
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_易做图)
values (#{username,jdbcType=NVARCHAR}, #{password,jdbcType=NVARCHAR}, #{name,jdbcType=NVARCHAR},
#{易做图,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_易做图)
values (#{username,jdbcType=NVARCHAR}, #{password,jdbcType=NVARCHAR}, #{name,jdbcType=NVARCHAR}, #{易做图,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_易做图)
values (#{username,jdbcType=NVARCHAR}, #{password,jdbcType=NVARCHAR}, #{name,jdbcType=NVARCHAR},
#{易做图,jdbcType=NVARCHAR})
</insert>
使用 sysUser.getId() 得到的却是null值
因为sqlmap.xml是用mybatis-generator工具生成的,生成的配置是sqlMap配置3的配置,不想手工更改配置文件,各位大大,看看为什么是null值啊!!! MyBatis select --------------------编程问答-------------------- <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">
……
看下 --------------------编程问答-------------------- 这个就是配置1,配置1是可以得到对应的主键值的,但是我现在需要的是配置3得到主键值,看了其他的文档,所是配置3也可以得到对应的主键值的,但是我的程序就是得不到,不知道为什么?(因为工具生成的配置是配置3的,我不想手工修改配置文件,要不然生成一次我就得改一次,太麻烦了) --------------------编程问答-------------------- 这本身就是他的bug --------------------编程问答-------------------- 配置2 得到的rows值居然是-1
只有配置1的既可以得到主键值,返回的值rows也是1 --------------------编程问答-------------------- 难道只能手工修改了!!!!
补充:Java , Java EE