for循环插入大量重复数据怎么提高效率

        for (int x = 0; x< maximum; x++) {//根据每个月的最大的天数复制对应的份数
            questionnaireLogic.insert(param, dbconfig);//创建问卷
            String addline = request.getParameter("addline");
            String[] add = addline.split(",");
            for(int i=0; i<add.length; i++){
                String quename = request.getParameter("quename"+add[i]);
                String quecomment = request.getParameter("quecomment"+add[i]);
                String quetype = request.getParameter("quetype"+add[i]);
                String mins = request.getParameter("mins"+add[i]);//多选限制选择个数
                String maxs = request.getParameter("maxs"+add[i]);
                String[] answernames = request.getParameterValues("answername"+add[i]);
                String checkradio = request.getParameter("checkAns"+add[i]);
                QuestionnaireQue param1 = new QuestionnaireQue();
                param1.setQnid(param.getId());//关联上面创建的问卷
                param1.setName(quename);
                int qorder = questionnaireLogic.findMaxQorder(dbconfig);
                param1.setQorder(qorder+1);
                param1.setQuetype(quetype);
                param1.setComment(quecomment);
                param1.setMinchoose(mins);
                param1.setMaxchoose(maxs);
                int flag = 1;
                if(StringUtils.isBlank(quename)||StringUtils.isBlank(quetype)){
                    flag = 0;
                }
                if (!"多行文本题".equals(quetype)&&answernames==null) {
                    flag = 0;
                }
                if(flag==1){
                    questionnaireLogic.insertQue(param1,dbconfig);//添加
                }
                if (!"多行文本题".equals(quetype)) {
                    if(answernames != null){
                        for(int j=0;j<answernames.length;j++){
                            QuestionnaireAnswer param2 = new QuestionnaireAnswer();
                            int queid = param1.getId();
                            int aorder = questionnaireLogic.findMaxAorder(queid,dbconfig);
                            param2.setAorder(aorder+1);
                            param2.setName(answernames[j]);
                            param2.setQueid(queid);
                            if("单选题".equals(quetype)&&checkradio!=null&&j==Integer.parseInt(checkradio)){
                                param2.setRadioCheck(1);
                            }
                            questionnaireLogic.insertAnswer(param2,dbconfig);//
                        }
                    }
                }
            }

            String oldId = request.getParameter("oldid");




            List<QuestionnaireQue> list = questionnaireLogic.findByQnid(oldId, dbconfig);//查找问卷

            for (QuestionnaireQue questionnaireQue : list) {
                questionnaireQue.setQnid(param.getId());
                List<QuestionnaireAnswer> listAnswer = questionnaireLogic.findByQueid(questionnaireQue.getId(),
                        dbconfig);
                questionnaireLogic.insertQue(questionnaireQue, dbconfig);
                for (QuestionnaireAnswer answer : listAnswer) {
                    answer.setQueid(questionnaireQue.getId());
                    questionnaireLogic.insertAnswer(answer, dbconfig);
                }
            }

        }
        return new ResponseInfo(true,"创建成功!");

这咋提高呢,不是循环次数的问题,那就只能是摆放的问题了,相同的数据,你想放多少次,循环多少次,这应该是定死了的,最多重复数据进行不重复访问,或者减少访问次数,就比如一次让尽量多的数据放在好的位置,每次一行,存进去省点时间。