<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 半導體 閱讀(136) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 久久亚洲AV成人出白浆无码国产| 久久狠狠爱亚洲综合影院| 免费视频成人手机在线观看网址| 久久亚洲熟女cc98cm| 在线免费观看韩国a视频| fc2成年免费共享视频18| 亚洲黄色网址在线观看| 性做久久久久免费看| 美女在线视频观看影院免费天天看| 亚洲天堂一区二区三区四区| 午夜亚洲av永久无码精品| 在线观看的免费网站无遮挡| 99亚洲精品卡2卡三卡4卡2卡| 亚洲国产成人久久综合一| 永久免费毛片手机版在线看| 久久免费线看线看| 蜜桃传媒一区二区亚洲AV| 亚洲色图国产精品| 亚洲Aⅴ无码一区二区二三区软件| 18禁黄网站禁片免费观看不卡| 成人免费观看男女羞羞视频| 亚洲中文字幕无码av在线| 中文字幕精品亚洲无线码一区| 成人午夜18免费看| 日韩内射激情视频在线播放免费| 男性gay黄免费网站| 亚洲人成综合在线播放| 国产亚洲av片在线观看播放| 日本一区免费电影| 亚洲精品免费网站| 亚欧免费一级毛片| 一级大黄美女免费播放| 久久人午夜亚洲精品无码区 | www免费黄色网| 亚洲AV无码专区国产乱码不卡| 亚洲国产成人精品不卡青青草原| 久久久久亚洲av毛片大| 国产免费AV片无码永久免费| 在线观看成人免费视频| 无码日韩精品一区二区免费| 亚在线观看免费视频入口|