spring.datasource.url = jdbc:mysql://xxxxxxxx:xxxx/xxxxx?useSSL=false&useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true&autoReconnect=true

入口下加@EnableTransactionManagement
@SpringBootApplication
@EnableTransactionManagement
service实现类下加
@Service
@Transactional
@Autowired
private NamedParameterJdbcTemplate namedParameterJdbcTempla

1、controller层

//获取用户答题
    @CrossOrigin
    @RequestMapping("/saveAnswer1")
    public void saveAnswer1() throws IOException, ParseException {
         List<ScoreVO> listscoreVO = new ArrayList<ScoreVO>();
         for(int i=0;i<=20;i++)    {
             ScoreVO score=new ScoreVO();
             score.setTasId(UUID.randomUUID().toString().replaceAll("-", ""));
             score.setQuId("1234567");
             score.setSurveyId("134567890ghjk");
             score.setTssId("234567890-");
             score.setUserId("SFSFSFSDF");
             listscoreVO.add(score);
         }         
        long start = System.currentTimeMillis();
        //改造前后代码、自行补充
        int result=answerService.test(listscoreVO);
        long end = System.currentTimeMillis();
        System.out.println("花费时间:"+(end-start));
        System.out.println("插入数据:"+result);
    }

2、service层

public void test(List<ScoreVO> listscoreVO) {     
        //批量转数组
        SqlParameterSource[] beanSources  = SqlParameterSourceUtils.createBatch(listscoreVO.toArray());
        String sql = "INSERT INTO t_answer_score(tas_id,user_id,survey_id,qu_id,tss_id) VALUES (:tasId,:userId,:surveyId,:quId,:tssId)";
        namedParameterJdbcTemplate.batchUpdate(sql, beanSources);
        return 0;
    }

3、实体类

/**
 *     用户答题分数表
 */
@Entity
@Getter
@Setter
@ToString
@NoArgsConstructor
@Table(name = "t_answer_score")
@GenericGenerator(name = "jpa-uuid", strategy = "uuid")
public class ScoreVO implements Serializable {
    private static final long serialVersionUID = -3199317015260021676L;
    @Id
    @GeneratedValue(generator = "jpa-uuid")
    @Column(length = 32)
    private String tasId;
    private String userId;
    private String surveyId;
    private String quId;
    private Double score;
    private String tssId;

}

开启数据空批量配置:rewriteBatchedStatements=true
开启事务:@EnableTransactionManagement ,@Transactional
本人测试了几种批量保存的方式 1、saveAll  jpa自带方法 2、改造saveAll方法,直接不进行比对保存的与表中数据是否相同 直接使用 JPA EntityManager persist 方法进行循环保存 3、jdbcTemplate .batchUpdate 方法进行保存 都不如上述方法效率高,前提是主键值是由自己主动生成,大家可以试试

jpa在批量添加的时候,存储慢如何解决问题相关推荐

  1. 微信jssdk批量添加卡券接口(踩坑经验)

    1)首先是官方接口文档: 1.批量添加卡券接口:https://mp.weixin.qq.com/wiki?action=doc&id=mp1421141115&t=0.0861973 ...

  2. ES-PHP向ES批量添加文档报No alive nodes found in your cluster

    ES-PHP向ES批量添加文档报No alive nodes found in your cluster 2016年12月14日 12:31:40 阅读数:2668 参考文章phpcurl 请求Chu ...

  3. python编写arcgis脚本_ArcGis Python脚本——批量添加字段

    插个广告,制作ArcGIS的Tool工具学习下面的教程就对了: 以下是正文: 先看如何增加一个字段 函数:arcpy.AddField_management 语法:AddFields_manageme ...

  4. 批量添加-动态拼接字符串

    字符串拼接主要包括以下三类,第三种方法是今天的重点. + Sring.format() StringBuilder.Append() 一.+ 对于少量固定的字符串拼接,我们可以简单利用"+& ...

  5. 批量添加联系人的方法

    说实话,我找了一整天的帖子,好像所有关于批量添加联系人的帖子都是复制一个人的! 然后那一个人又没说清楚. 以下是我做的,可能有不对! 实现功能就好吧.我感觉 API上,还有sample里面都有现成的, ...

  6. android 通讯录 编程,以编程方式批量添加数千个Android联系人

    使用ContentResolver.applyBatch和ContentResolver.bulkInsert方法一次性添加数千个联系人非常慢. Android是否提供了批量添加联系人的不同方式,这种 ...

  7. ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性

    向表或要素类表.要素图层和/或带属性表的栅格添加字段并设置字段属性,是我们在数据建库或处理时常常要用到的操作,实现的方法非常多. 一.逐一添加字段的常见操作 1.打开属性表--添加字段. 2.使用字段 ...

  8. 用户管理(一):使用shell脚本批量添加指定数量的用户

    运行环境 CentOS 6.9.Xshell 5 前言 我们在需要创建多个用户的时候,使用手工单独创建是比较耗费精力的事情,我们可以通过shell脚本实现批量添加用户,实现指定数量用户.创建用户默认名 ...

  9. EF 批量 添加 修改 删除

    1批量添加    db.T_Investigator.AddRange(list) 2批量删除    db.T_Investigator.RemoveRange(list) 3批量修改   for 循 ...

最新文章

  1. 2020图灵年度好书大赏 | 15周年视频纪念版
  2. CSS常用菜单(三)
  3. Go 语言编程 — 高级数据类型 — 数组
  4. linux——管理系统设备之磁盘的加密、加密磁盘的挂载及磁盘阵列、配额
  5. geotools 读取shp属性过滤_Flink进阶之使用布隆过滤器实现UV统计
  6. Linux系统给进程绑核
  7. mysql语句优化 explai_mysql使用explain优化sql语句
  8. python识别数字程序_Python识别处理照片中的条形码
  9. php 如何生成txt文件,PHP生成TXT文件
  10. python 画图 线标注_Python中画图时候的线类型
  11. 计算机f盘的东西能删不,电脑清理文件不小心把F盘文件删除怎么办
  12. android 黄金颜色,金光闪闪-六款经典款黄金首饰推荐
  13. 最新域名防红程序源码 采用小Q防红
  14. Latex(1.1)——符号表
  15. 判断两个数运算是否越界
  16. 【数字工厂】通信设备制造业“数字工厂”解决方案浅析
  17. 帝国CMS教程:ECMS(帝国CMS)搜索伪静态
  18. unicode 和 GB2312 编码对应表
  19. Java_Web笔记汇总_火热更新中。。。
  20. 呼叫中心技术 -- 上篇(笔记)

热门文章

  1. python软件下载免费还是收费-开源等于免费吗?真相在这里
  2. Mogrt模板 电影追灯光线特效字幕条PR模板下载
  3. [AHK]让当前脚本开机自动启动
  4. 【CSS系列】被忽略的content属性
  5. uTorrent局域网做种
  6. python K-means聚类分析聚类数的选择-肘部法则和轮廓系数
  7. Button字体大写
  8. 3.6 n维随机变量
  9. BIM机电插件分分钟解决【管道附件】【风管附件】【电气配件】
  10. 亚信安全虚拟手机服务器,亚信安全云手机服务器