mybatis 中 useGeneratedKeys 和 keyProperty 含义

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 + "条记录!"  + "\n 刚刚插入记录的主键自增长值为:" + user.getId()); }