java - Mybatis插入mysql数据库返回自增主键的问题?
本文介绍了java - Mybatis插入mysql数据库返回自增主键的问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
在mapper.xml文件配置如下:
<mapper namespace="com.uiyllong.cims.dao.QuestMapper">
<resultMap type="com.uiyllong.cims.model.Selecter" id="resultSel">
<id column="selp_id" property="selpId" />
<result column="oid" jdbcType="INTEGER" property="oid" />
<result column="content" jdbcType="VARCHAR" property="content" />
<result column="selseq" jdbcType="INTEGER" property="selseq" />
</resultMap>
<resultMap id="BaseResultMap" type="com.uiyllong.cims.model.Quest">
<id column="qp_id" jdbcType="INTEGER" property="qpId" />
<result column="q_content" jdbcType="VARCHAR" property="content" />
<result column="qtype" jdbcType="INTEGER" property="qtype" />
<result column="seq" jdbcType="INTEGER" property="seq" />
<result column="s_oid" jdbcType="INTEGER" property="sOid" />
<collection property="selecters" ofType="com.uiyllong.cims.model.Selecter"
column="qseq_id" resultMap="resultSel"></collection>
</resultMap>
<!-- 插入问题 -->
<insert id="insertSelective" parameterType="com.uiyllong.cims.model.Quest"
useGeneratedKeys="true" keyProperty="qpId">
insert into quest_t
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="qpId != null">
qp_id,
</if>
<if test="content != null">
q_content,
</if>
<if test="qtype != null">
qtype,
</if>
<if test="seq != null">
seq,
</if>
<if test="sOid != null">
s_oid,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="qpId != null">
#{qpId,jdbcType=INTEGER},
</if>
<if test="content != null">
#{content,jdbcType=VARCHAR},
</if>
<if test="qtype != null">
#{qtype,jdbcType=INTEGER},
</if>
<if test="seq != null">
#{seq,jdbcType=INTEGER},
</if>
<if test="sOid != null">
#{sOid,jdbcType=INTEGER},
</if>
</trim>
</insert>
然后控制器调用后返回的居然一直是1 ,并没有实现返回主键
去网上找了一下 都是这样加了两个属性而已useGeneratedKeys="true" keyProperty="qpId"
解决方案
你可能理解错了,mybatis返回主键并不是通过返回值的形式,而是通过set到实体的id上。你可以输出Quest对象的qpId值,查看自增主键。
这篇关于java - Mybatis插入mysql数据库返回自增主键的问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文