<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JBOSS 點滴

    豐豐的博客

    mybatis學習之路----mysql批量新增數據

    來源:
    https://blog.csdn.net/xu1916659422/article/details/77971867
     
       mysql新增語句 
        insert into 表名(字段,字段。。。) values ( 值,值 。。。);此種適合單條插入。
    批量插入,
       一種可以在代碼中循環著執行上面的語句,但是這種效率太差,下面會有對比,看看它有多差。
    另一種,可以用mysql支持的批量插入語句,
    insert into
         表名(字段,字段。。。) values ( 值,值 。。。),( 值,值 。。。),( 值,值 。。。)....
    這種方式相比起來,更高效。
    實現過程mapper.xml
     

        <!-- 跟普通的insert沒有什么不同的地方 ,主要用來跟下面的批量插入做對比。-->
        <insert id="insert" parameterType="com.soft.mybatis.model.Customer">
            <!-- 跟自增主鍵方式相比,這里的不同之處只有兩點
                        1  insert語句需要寫id字段了,并且 values里面也不能省略
                        2 selectKey 的order屬性需要寫成BEFORE 因為這樣才能將生成的uuid主鍵放入到model中,
                        這樣后面的insert的values里面的id才不會獲取為空
                  跟自增主鍵相比就這點區別,當然了這里的獲取主鍵id的方式為 select uuid()
                  當然也可以另寫別生成函數。-->
            <selectKey keyProperty="id" order="BEFORE" resultType="String">
                select uuid()
            </selectKey>
            insert into t_customer (id,c_name,c_sex,c_ceroNo,c_ceroType,c_age)
            values (#{id},#{name},#{sex},#{ceroNo},#{ceroType},#{age})
        </insert>
     
        <!-- 批量插入, -->
        <insert id="batchInsert" parameterType="java.util.Map">
            <!-- 這里只做演示用,真正項目中不會寫的這么簡單。 -->
            insert into
              t_customer (id,c_name,c_sex,c_ceroNo,c_ceroType,c_age)
            values
            <!-- foreach mybatis循環集合用的
                  collection="list" 接收的map集合中的key 用以循環key對應的屬性
                     separator=","  表示每次循環完畢,在sql后面放一個逗號
                     item="cus" 每次循環的實體對象 名稱隨意-->
            <foreach collection="list" separator="," item="cus">
                <!-- 組裝values對象,因為這張表的主鍵為非自增主鍵,所以這里 (select uuid()) 用于生成id的值-->
                ((select uuid()),#{cus.name},#{cus.sex},#{cus.ceroNo},#{cus.ceroType},#{cus.age})
            </foreach>
        </insert>
    實體model對象

    package com.soft.mybatis.model;

     

    /**

     * Created by xuweiwei on 2017/9/10.

     */

    public class Customer {

     

        private String id;

        private String name;

        private Integer age;

        private Integer sex;

        private String ceroNo;

        private Integer ceroType;

     

        public String getId() {

            return id;

        }

     

        public void setId(String id) {

            this.id = id;

        }

     

        public String getName() {

            return name;

        }

     

        public void setName(String name) {

            this.name = name;

        }

     

        public Integer getAge() {

            return age;

        }

     

        public void setAge(Integer age) {

            this.age = age;

        }

     

        public Integer getSex() {

            return sex;

        }

     

        public void setSex(Integer sex) {

            this.sex = sex;

        }

     

        public String getCeroNo() {

            return ceroNo;

        }

     

        public void setCeroNo(String ceroNo) {

            this.ceroNo = ceroNo;

        }

     

        public Integer getCeroType() {

            return ceroType;

        }

     

        public void setCeroType(Integer ceroType) {

            this.ceroType = ceroType;

        }

     

        @Override

        public String toString() {

            return "Customer{" +

                    "id='" + id + '\'' +

                    ", name='" + name + '\'' +

                    ", age=" + age +

                    ", sex=" + sex +

                    ", ceroNo='" + ceroNo + '\'' +

                    ", ceroType='" + ceroType + '\'' +

                    '}';

        }

    }
    接口
    1. int add(Customer customer);
    2.     int batchInsert(Map<String,Object> param);

      實現
    實現

       
    /**

         * 新增數據

         * 
    @param customer

         * 
    @return

         
    */

        
    public int add(Customer customer) {

            
    return insert("customer.insert", customer);

        }

     

        
    /**

         * 批量插入數據

         * 
    @param param

         * 
    @return

         
    */

        
    public int batchInsert(Map<String,Object> param) {

            
    return insert("customer.batchInsert", param);

        }

     

        
    /**

         * 公共部分

         * 
    @param statementId

         * 
    @param obj

         * 
    @return

         
    */

        
    private int insert(String statementId, Object obj){

            SqlSession sqlSession 
    = null;

            
    try {

                sqlSession 
    = SqlsessionUtil.getSqlSession();

                
    int key =  sqlSession.insert(statementId, obj);

                
    // commit

                sqlSession.commit();

                
    return key;

            } 
    catch (Exception e) {

                sqlSession.rollback();

                e.printStackTrace();

            } 
    finally {

                SqlsessionUtil.closeSession(sqlSession);

            }

            
    return 0;

        }

    posted on 2019-05-23 11:29 半導體 閱讀(135) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 香蕉大伊亚洲人在线观看| 亚洲一区二区女搞男| 亚洲第一页在线观看| 99久久精品免费精品国产| 亚洲AV成人精品网站在线播放| 国产午夜免费高清久久影院| 亚洲中文字幕久久精品无码喷水| 中文字幕在线免费观看视频| 亚洲日韩v无码中文字幕| 99久久精品免费视频| 久久精品国产亚洲AV蜜臀色欲| 最近中文字幕mv免费高清视频7| 亚洲熟妇AV一区二区三区宅男| 高清国语自产拍免费视频国产| 粉色视频成年免费人15次| 国产亚洲午夜高清国产拍精品| 久久免费精品一区二区| 91亚洲精品麻豆| 在线观看亚洲免费| 久久不见久久见免费影院www日本| 亚洲高清在线视频| 无码一区二区三区AV免费| 免费人妻精品一区二区三区| 国产日产亚洲系列| 中文免费观看视频网站| 久久亚洲中文字幕无码| 亚洲AV综合色区无码一区| 在线看免费观看AV深夜影院| 最新亚洲人成网站在线观看| 亚洲深深色噜噜狠狠爱网站| 亚洲天堂免费在线| 免费人成大片在线观看播放| 亚洲国产精品久久久久网站 | 免费很黄很色裸乳在线观看| 永久在线观看免费视频 | 亚洲日韩欧洲无码av夜夜摸| 国产免费的野战视频| 一个人看的www免费高清| 亚洲国产超清无码专区| 亚洲一级特黄大片无码毛片| 1000部拍拍拍18免费网站|