java - Mybatis s'insère dans la base de données MySQL et renvoie une clé primaire auto-incrémentée?
ringa_lee
ringa_lee 2017-05-17 10:02:01
0
2
751

La configuration dans le fichier mapper.xml est la suivante :

<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_lee
ringa_lee

ringa_lee

répondre à tous(2)
Peter_Zhu

Vous avez peut-être mal compris. Mybatis renvoie la clé primaire non pas sous la forme d'une valeur de retour, mais en la définissant sur l'ID de l'entité. Vous pouvez afficher la valeur qpId de l'objet Quest pour afficher la clé primaire à incrémentation automatique.

我想大声告诉你

Alors avez-vous défini l'auto-incrémentation de la clé primaire dans la table correspondant à votre base de données ? Ou est-ce pris en charge ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal