zoukankan      html  css  js  c++  java
  • Mybatis配置useGeneratedKeys="true" keyProperty="id"的作用

    有时候在开发中需要向表中插入自增ID,这个时候领域模型如果想要获取该ID的值,就需要在相应的mapper文件中添加useGeneratedKeys="true" keyProperty="id"。

    MyBatis如何获取插入记录的自增长字段值:

    第一步:

        在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名!

    <insert id="insert" parameterType="Spares" 
            useGeneratedKeys="true" keyProperty="id">
            insert into spares(spares_id,spares_name,
                spares_type_id,spares_spec)
            values(#{id},#{name},#{typeId},#{spec})
        </insert>

    第二步:

        Mybatis执行完插入语句后,自动将自增长值赋值给对象Spares的属性id。因此,可通过Spares对应的getter方法获取!

    复制代码
        /**
         * 新增备件
         * @author hellostory
         * @param spares
         * @return
         */
        @RequestMapping(value = "/insert")
        @ResponseBody
        public JsonResponse insert(Spares spares) {
            int count = sparesService.insert(spares);      //count>0 表示成功
            System.out.println( "刚刚插入记录的主键自增长值为:" + spares.getId());
    复制代码

     如果没有useGeneratedKeys="true"和keyProperty="id",下面 insert 之后的 user.getId() 是无法获取 id 值的public void insert(User user) {      int count = userMapper.insert(user);     System.out.println("共插入" + count + "条记录!"  + " 刚刚插入记录的主键自增长值为:" + user.getId()); }

     

  • 相关阅读:
    [ARC074C] RGB Sequence
    [SHOI2014] 概率充电器
    CF368B Sereja and Suffixes
    CF980D Perfect Groups
    Rainbow Roads(gym101617G)(DFS序,差分)
    Educational Codeforces Round 104 (Rated for Div. 2)(A~E)
    Floor and Mod(CF1485C)(数论)
    Longest Simple Cycle(CF1476C)(线性dp)
    Factories(Gym102222G)(树形dp+背包)
    Codeforces Round #699 (Div. 2)(A,B,C,D)
  • 原文地址:https://www.cnblogs.com/cxy2020/p/13141997.html
Copyright © 2011-2022 走看看