SpringMVC与MyBatis的使用

文章讲述了在Java中,当数据库没有自带save()方法时,如何使用两种方式处理存储后实体类的id:一种是利用`useGeneratedKeys=true`和`keyProperty=id`自动获取生成的ID,另一种是先插入再通过`selectKey`手动获取。还提到了顺序选项BEFORE和AFTER的影响。
摘要由CSDN通过智能技术生成

数据库没有自带的save()方法时,但是需要用到存储后的实体类id
方式一:

 <insert id="savef" parameterType="XXX.f" useGeneratedKeys="true" keyProperty="id">
        insert into f
        (jsonid,userid,title,author,path,status,resultpath,inserttime,updatetime,zifucnt,totalcnt) values (#{f.jsonid}
        ,#{f.userid},#{f.title},#{f.author},#{f.path},#{f.status},#{f.resultpath}
        ,#{f.inserttime},#{f.updatetime},#{f.zifucnt},#{f.totalcnt});
    </insert>
    // 其中 useGeneratedKeys="true" keyProperty="id"就是将id存储在f的id中,返回值是1,成功插入一条数据

方法二:

<insert id="savef" parameterType="xxx.f">
        insert into f
            (jsonid,userid,title,author,path,status,resultpath) values (#{f.jsonid}
            ,#{f.userid},#{f.title},#{f.author},#{f.path},#{f.status},#{f.resultpath});
        <selectKey keyProperty="f.id" keyColumn="id" order="AFTER" resultType="java.lang.Integer">
            select last_insert_id();
        </selectKey>
</insert>

order可以被设置为 BEFORE 或 AFTER。
BEFORE => 它会首先选择主键,设置 keyProperty 然后执行插入语句;
AFTER=>先执行插入语句,然后是 selectKey 元素-这和如 Oracle 数据库相似,可以在插入语句中嵌入序列调用。
注意:keyProperty=“f.id” ;写成:keyProperty="id"得不到值,问就是试过【哭泣】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值