开心一笑: 会买水果的狗狗

    关注微信公众号

    QQ群:831045818

    app下载

    当前位置:首页> java > 技术文档 > 正文
    mybatis批量插入上万条数据
    发布时间:2020-08-27 15:17:18.0 浏览次数:
    //Bean
    public class OptionReq {
        private Integer id;
    
        private String contractnum;
    
        private String szRev;
    
        private String szEsend;
    
        private String commissionProcessingTime;
    
        public OptionReq() {
    
        }
        //重点 没有无法读到数据
        public OptionReq(String contractnum, String szRev, String szEsend, String commissionProcessingTime) {
            this.contractnum=contractnum;
            this.szRev=szRev;
            this.szEsend=szEsend;
            this.commissionProcessingTime=commissionProcessingTime;
        }
    }
    
    //Mapper
    /*
    @Select({"",
        "AND mydate = #{mydate}",
        "",
        "" _ue_custom_node_="true">"})
    */
    public interface OptionManyMapper {
        @Insert("" +
                "(#{obj.contractnum},#{obj.szRev},#{obj.szEsend},#{obj.commissionProcessingTime})" +
                "" +
                "" _ue_custom_node_="true">")
        Integer InsertReq(Listlist);
    
        @Delete("")
        Integer delReq(); 
    }
    
    //方法
    public static int insertReq(Listlist){
        int maxRun=10000; //最大插入 不能太大 需要配置my.ini 与java内存支持
        try {
            ListlistSql = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                //对应Bane toString 方法内容 多少个内容 多少个值 对应sql 插入的数据
                //INSERT INTO `test` (`contractnum`, `sz_rev`, `sz_esend`, `commission_processing_time`) VALUES ('a1','a2','a3','a4'),('a1','a2','a3','a4')
                listSql.add(new OptionReq(list.get(i).getContractnum(), list.get(i).getSz_rev(),list.get(i).getSzEsend(), list.get(i).getCommissionProcessingTime()));
                
            }
            OptionManyMapper item = SpringUtils.getBean(OptionManyMapper.class);
            int index = (int)Math.ceil((double)listSql.size()/maxRun);
            log.error("index:"+index+"  "+listSql.size());
            for (int i=0;i< index;i++){
                //stream流表达式,skip表示跳过前i*10000条记录,limit表示读取当前流的前10000条记录
                //System.out.println("!!!!:"+list.stream().skip(i*10000).limit(10000).collect(Collectors.toList()));
                item.InsertReq(listSql.stream().skip(i*maxRun).limit(maxRun).collect(Collectors.toList()));
            }
        }catch (Exception e){
            e.printStackTrace();
    
        }
        return 0 ;
    }
    
    //由于特殊 用别的baen 做数据
    
    import com.orientsec.common.utils.StringUtils;
    import org.apache.commons.lang3.builder.ToStringBuilder;
    import org.apache.commons.lang3.builder.ToStringStyle;
    import com.orientsec.framework.aspectj.lang.annotation.Excel;
    import com.orientsec.framework.web.domain.BaseEntity;
    
    /**
    
     */
    public class OptionMonitoringData
    {
        private static final long serialVersionUID = 1L;
    
        /** null */
        private Long id;
    
        /** contractnum */
        @Excel(name = "contractnum")
        private String contractnum;
    
        /** SZ-REV */
        @Excel(name = "SZ-REV")
        private String sz_rev;
    
        /** SZ-Esend */
        @Excel(name = "SZ-Esend")
        private String szEsend;
    
        /** 委托处理时间 */
        @Excel(name = "委托处理时间")
        private String commissionProcessingTime;
    
        /** RespRev */
        @Excel(name = "RespRev")
        private String respRev;
    
        /** SZ-EndSend */
        @Excel(name = "SZ-EndSend")
        private String szEndsend;
    
        /** 确认处理时间 */
        @Excel(name = "确认处理时间")
        private String confirmTime;
    
        /** 撮合耗时 */
        @Excel(name = "撮合耗时")
        private String matchTime;
    
        /** 总耗时 */
        @Excel(name = "总耗时")
        private String totalTime;
    
        private String dataDay;
    
    
    
        public void setId(Long id) 
        {
            this.id = id;
        }
    
        public Long getId() 
        {
            return id;
        }
        public void setContractnum(String contractnum) 
        {
            this.contractnum = contractnum;
        }
    
        public String getContractnum() 
        {
            return contractnum;
        }
    
    
    
        public String getSz_rev() {
            return sz_rev;
        }
    
        public void setSz_rev(String sz_rev) {
            this.sz_rev = sz_rev;
        }
    
        public void setSzEsend(String szEsend)
        {
            this.szEsend = szEsend;
        }
    
        public String getSzEsend() 
        {
            return szEsend;
        }
        public void setCommissionProcessingTime(String commissionProcessingTime) 
        {
            this.commissionProcessingTime = commissionProcessingTime;
        }
    
        public String getCommissionProcessingTime() 
        {
            return commissionProcessingTime;
        }
        public void setRespRev(String respRev) 
        {
            this.respRev = respRev;
        }
    
        public String getRespRev() 
        {
            return respRev;
        }
        public void setSzEndsend(String szEndsend) 
        {
            this.szEndsend = szEndsend;
        }
    
        public String getSzEndsend() 
        {
            return szEndsend;
        }
        public void setConfirmTime(String confirmTime) 
        {
            this.confirmTime = confirmTime;
        }
    
        public String getConfirmTime() 
        {
            return confirmTime;
        }
        public void setMatchTime(String matchTime) 
        {
            this.matchTime = matchTime;
        }
    
        public String getMatchTime() 
        {
            return matchTime;
        }
        public void setTotalTime(String totalTime) 
        {
            this.totalTime = totalTime;
        }
    
        public String getTotalTime() 
        {
            return totalTime;
        }
    
        public String getDataDay() {
            return dataDay;
        }
    
        public void setDataDay(String dataDay) {
            this.dataDay = dataDay;
        }
    
        @Override
        public String toString() {
            return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("contractnum", getContractnum())
                .append("sz_rev", getSz_rev())
                .append("szEsend", getSzEsend())
                .append("commissionProcessingTime", getCommissionProcessingTime())
                .append("respRev", getRespRev())
                .append("szEndsend", getSzEndsend())
                .append("confirmTime", getConfirmTime())
                .append("matchTime", getMatchTime())
                .append("totalTime", getTotalTime())
                    .append("dataDay",getDataDay())
                .toString();
        }
    
        @Override
        public boolean equals(Object obj) {
            if(this == obj){
                return true;//地址相等
            }
            if(obj == null){
                return false;//非空性:对于任意非空引用x,x.equals(null)应该返回false。
            }
    
            if(obj instanceof OptionMonitoringData){
                OptionMonitoringData other = (OptionMonitoringData) obj;
                //需要比较的字段相等,则这两个对象相等
                if(equalsStr(this.sz_rev, other.sz_rev)){
                    return true;
                }
            }
            return false;
        }
    
        private boolean equalsStr(String str1, String str2){
            if(StringUtils.isEmpty(str1) && StringUtils.isEmpty(str2)){
                return true;
            }
            if(!StringUtils.isEmpty(str1) && str1.equals(str2)){
                return true;
            }
            return false;
        }
    
        @Override
        public int hashCode() {
            int result = 17;
            result = 31 * result + (sz_rev == null ? 0 : sz_rev.hashCode());
            //result = 31 * result + (age == null ? 0 : age.hashCode());
            return result;
        }
    
    }
    
    //调用方法  用for 循环添加一个list


    关注"都市百货" 了解南陵

    微信咨询wanglf2r(不拉群 发广告者勿加)

    0
    0
    上一篇:南陵大桥桥梁开展除锈刷漆工作 上一篇:南陵 萃英园中学高考复读生二次补录时间

    评论已有0

    提交评论

    热门评论

    南陵新闻
    公示公告
    常用查询
    风光南陵
    走出南陵
    友情链接