搜索

首页  >  问答  >  正文

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"
ringa_leeringa_lee2742 天前734

全部回复(2)我来回复

  • 天蓬老师

    天蓬老师2017-05-17 10:04:01

    你可能理解错了,mybatis返回主键并不是通过返回值的形式,而是通过set到实体的id上。你可以输出Quest对象的qpId值,查看自增主键。

    回复
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-17 10:04:01

    那你数据库对应的表本身有没有设置主键自增呢?或者支不支持?

    回复
    0
  • 取消回复