1. 批量更新插入

jdbcTemplate.batchUpdate(String sql, List<Object[]> batchArgs)

Object[]数组的长度为每条记录的参数个数(也就是sql语句中"?"的个数)

List: 总共插入多少条记录。

/**
* 批量插入订单详情
*
*/
public void addBatch(List<OrderDetail> orderDetails) {
List<Object[]> params = new ArrayList<>();
for(OrderDetail orderDetail : orderDetails) {
params.add(new Object[]{orderDetail.getProductName(), orderDetail.getProductPrice(),
orderDetail.getProductCount(), orderDetail.getParentid()});
}
final String sql = "insert into order_detail(pro_name,pro_price,pro_count,parent_id) values(?,?,?,?)";
jdbcTemplate.batchUpdate(sql, params); }

2. 单条记录插入获取主键id

/**
* 插入并获取主键
*/
public int addAndGetId(Order order) {
final String sql = "insert into orders(name, address,createtime,totalprice,status) values(?,?,?,?,?)";
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
PreparedStatement ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
ps.setObject(1, order.getName());
ps.setObject(2, order.getAddress());
ps.setObject(3, order.getCreateTime());
ps.setObject(4, order.getTotalPrice());
ps.setObject(5, order.getStatus());
return ps;
}
}, keyHolder);
return keyHolder.getKey().intValue();
}

  

  

spring JdbcTemplate批量插入以及单个插入时获取id的更多相关文章

  1. mybatis单个插入和批量插入的简单比较

    在J2EE项目中,mybatis作为主流持久层框架,许多知识值得我们去钻研学习,今天,记录一下数据插入性能(单个插入和批量插入). 一,测试对象 public class Test { private ...

  2. MySql LAST_INSERT_ID 【插入多条数据时】

    LAST_INSERT_ID 自动返回最后一个 INSERT 或 UPDATE 操作为 AUTO_INCREMENT 列设置的第一个发生的值. 参考这里 The ID that was generat ...

  3. 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案

    1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...

  4. mysql 批量插入与单条插入 的效率比较

    1.数据插入性能(单个插入和批量插入) public class Test { private Long id; private String test; public Long getId() { ...

  5. 使用SQLServer2005插入一条数据时返回当前插入数据的ID

    使用SQLServer2005插入一条数据时返回当前插入数据的ID 在执行完插入后 再执行 select @@identity from users 就OK 就是刚才插入的那行的 ID了 补充: @@ ...

  6. Oracle数据库使用mybatis的时候,实体类日期为Date类型,mybatis里面定义的是Date类型,插入的时候,时分秒全部是12:00:00问题

    实体类中日期定义的是Date类型的,没毛病: 我在mybatis里面定义的是Date类型的,进行测试的时候发现,数据库插入的日期的时分秒全部都是一样的,都是12:00:00,很郁闷: 后来把mybat ...

  7. mysql/mariadb数据库在插入表数据时,ID竟然成奇数增加了?看完下面内容就知道怎么处理了。

    今天突然被问到一个问题,mysql数据库插入表数据时,设置了ID自增,但是插入数据后,ID却呈奇数增加,不是123456类型,而是13579形式,突然有点懵,研究了一会,发现是auto_increme ...

  8. SQL Server批量向表中插入多行数据语句

    因自己学习测试需要,需要两个有大量不重复行的表,表中行数越多越好.手动编写SQL语句,通过循环,批量向表中插入数据,考虑到避免一致问题,设置奇偶行不同.个人水平有限,如有错误,还望指正. 语句如下: ...

  9. MongoDB 批量插入和循环插入性能测试

    一万条数据批量插入和循环插入 循环插入 var startTime = (new Date()).getTime() var db = connect('log') for(var i = 0;i&l ...

随机推荐

  1. 从输入url到显示网页发生了什么

    原文链接:https://juejin.im/post/5bf23afa6fb9a049be5d1494 在浏览器中输入url到显示网页主要包含两个部分: 网络通信和页面渲染 互联网内各网络设备间的通 ...

  2. IG—金字塔

    博客链接 选择困难症的福音--团队Scrum冲刺阶段-Day 1领航 选择困难症的福音--团队Scrum冲刺阶段-Day 2 选择困难症的福音--团队Scrum冲刺阶段-Day 3 选择困难症的福音- ...

  3. 【commons-io】File对文件与目录的处理&FileUtis,IOUtils,FilenameUtils工具的使用

    -------------------File的使用-------------- 1.File类对文件的处理 1.1目录结构:  1.2测试对文件Test.txt处理: // 测试文件 @Test p ...

  4. Django入门指南-第6章:第一个视图函数(完结)

    http://127.0.0.1:8000/ # boards/views.py from django.http import HttpResponse from .models import Bo ...

  5. arduino一些内容

    arduino 套件使用说明书V1.0.pdf, 步进电机 DHT11 传感器另外一脚要接A0 /* Web client This sketch connects to a website (htt ...

  6. 一)如何开始 ehcache ?

    官网地址 http://www.ehcache.org/ 从哪开始 第一步优先下载 http://www.ehcache.org/downloads/ 下载 Ehcache 2.10.0 .tar.g ...

  7. 常用的SLAM解决方案

    ORB SLAM 可以去Github上自己搜索现成的SLAM程序包 在此基础上做优化 视觉SLAM的分类方法:按摄像头的多少分为单目和双目,按是否使用概率方法分为概率法和图法 链接 学习SLAM重要的 ...

  8. OpenGL ES之GLFW窗口搭建

    概述 本章节主要总结如何使用GLFW来创建Opengl窗口.主要包括如下内容: OpenGl窗口创建介绍 GLFW Window版编译介绍 GLFW简单工程源码介绍 OpenGL窗口创建介绍 能用于O ...

  9. hdu3333 Turing Tree 2016-09-18 20:53 42人阅读 评论(0) 收藏

    Turing Tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  10. hdu 1505,1506

    1506题目 1505题目 1506: #include<stdio.h> #include<string.h> #include<iostream> using ...