zoukankan      html  css  js  c++  java
  • Mybatis插入数据返回自增主键

    方法有很多,参考 mysql函数之六:mysql插入数据后返回自增ID的方法,last_insert_id(),selectkey

    这里记录一下工作中自己用到的selectkey方法的详细过程。

    pojo类:

     1 public class Client {
     2     /**
     3      * 客户id
     4      */
     5     @Id
     6     private Integer id;
     7 
     8     /**
     9      * 客户名称
    10      */
    11     private String name;
    12 
    13     //其他的一些域自己补充,对应get/set方法也要添加
    14 
    15     /**
    16      * 获取客户id
    17      *
    18      * @return id - 客户id
    19      */
    20     public Integer getId() {
    21         return id;
    22     }
    23 
    24     /**
    25      * 设置客户id
    26      *
    27      * @param id 客户id
    28      */
    29     public void setId(Integer id) {
    30         this.id = id;
    31     }
    32 
    33     /**
    34      * 获取客户名称
    35      *
    36      * @return name - 客户名称
    37      */
    38     public String getName() {
    39         return name;
    40     }
    41 
    42     /**
    43      * 设置客户名称
    44      *
    45      * @param name 客户名称
    46      */
    47     public void setName(String name) {
    48         this.name = name;
    49     }
    50 }

    xml映射文件:

    keyProperty设置为pojo类的ID域, order为BEFORE则在insert方法之前调用,AFTER则在insert方法之后调用

      <insert id="insertSelective" parameterType="com.zhouyufan.client.pojo.Client">
            <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
                select LAST_INSERT_ID()
            </selectKey>
            insert into client
            <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test="name != null and name != ''">name,</if>
                <if test="test1 != null">test1,</if>
                <if test="test2 != null">test2,</if>
            </trim>
            <trim prefix="values (" suffix=")" suffixOverrides=",">
                <if test="name != null and name != ''">#{name,jdbcType=VARCHAR},</if>
                <if test="test1 != null">#{test1,jdbcType=TINYINT},</if>
                <if test="test2 != null">#{test2,jdbcType=TINYINT},</if>
            </trim>
        </insert>

    在Java方法中调用:

    1 // count仍然为insert操作返回的结果
    2 int count = clientMapperCustom.insertSelective(client);
    3 // 自增主键在client的id域里,通过client.getId();获取自增主键
    4 int autoClientid = client.getId();
  • 相关阅读:
    Android 程序员必须知道的 53 个知识点
    2017.8.27 考试
    hdu 3118 Arbiter
    UVA 1575 Factors
    [HNOI2008]Cards
    JSOI2008 小店购物
    hdu 2121 Ice_cream’s world II
    poj 3164 Command Network(最小树形图模板)
    [USACO14MAR] Counting Friends
    UVA 10479 The Hendrie Sequence
  • 原文地址:https://www.cnblogs.com/yfzhou/p/9663416.html
Copyright © 2011-2022 走看看