zoukankan      html  css  js  c++  java
  • 【Mybatis】数据插入数据库时,获取自增主键

    在mybatis的XML文件时,配置useGeneratedKeysKeyProperty属性,且这两个属性不能省略。
    useGeneratedKeys属性,要求数据库本身具备主键自动增长的功能。
    KeyProperty属性,java对象的属性名,也就是要获取的字段。

    1、Mybatis Mapper 中,如下配置。

    <!-- 插入 -->
        <insert id="insert" parameterType="com.liuxs.pojo.OrderPo"
            useGeneratedKeys="true" keyProperty="id">
            insert into T_name
            <trim prefix="(" suffix=")" suffixOverrides=",">
                id,
                <if test="remarks != null">
                    remarks,
                </if>
                <if test="state != null">
                    state,
                </if>
            </trim>
    
            <trim prefix="values (" suffix=")" suffixOverrides=",">
                #{id,jdbcType=BIGINT},
                <if test="remarks != null">
                    #{remarks,jdbcType=VARCHAR},
                </if>
                <if test="state != null">
                    #{state,jdbcType=INTEGER},
                </if>
            </trim>
        </insert>

    2、java代码

    /**
         * 新增备件
         * @param orderPo
         * orderPo中remarks和status用Set方法赋值
         * @return
         */
        @RequestMapping(value = "/insert")
        @ResponseBody
        public Long insert(OrderPo orderPo) {
            Long count = orderService.insert(orderPo);
            System.out.println("共插入" + count + "条记录!"
                    + "
    刚刚插入记录的主键自增长值为:" + orderPo.getId());

    3、另外,还有一种Mybatis配置方式

    <!-- 插入 -->
        <insert id="insert" parameterType="com.liuxs.pojo.OrderPo">
            <selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id">
                  SELECT LAST_INSERT_ID() AS id
            </selectKey>
            insert into T_name
            <trim prefix="(" suffix=")" suffixOverrides=",">
                id,
                <if test="remarks != null">
                    remarks,
                </if>
                <if test="state != null">
                    state,
                </if>
            </trim>
    
            <trim prefix="values (" suffix=")" suffixOverrides=",">
                #{id,jdbcType=BIGINT},
                <if test="remarks != null">
                    #{remarks,jdbcType=VARCHAR},
                </if>
                <if test="state != null">
                    #{state,jdbcType=INTEGER},
                </if>
            </trim>
        </insert>
  • 相关阅读:
    一定要在3 20前完成所有的程序开发工作
    浅谈图像处理方向的就业前景[转)
    期待牛人指教的问题?
    vc6 7工程转vc8时的问题
    今天的工作计划
    定点数与浮点数区别
    difference between texRECT and tex2D
    Render to Texture
    不明白gluperpective的fovy参数
    批处理程序教程(转)
  • 原文地址:https://www.cnblogs.com/liuxs13/p/7794771.html
Copyright © 2011-2022 走看看