运行环境:SpringBoot,注入JdbcTemplate

    @Autowired
private JdbcTemplate jdbcTemplate;

1、单表批量插入数据

    @Test
public void batchTest() throws IOException { InputStream inputStream = new FileInputStream("O:\\files\\测试.txt"); List<Object[]> list = new ArrayList<>(); for (String readLine : IOUtils.readLines(inputStream,"utf-8")){
String[] s = readLine.split("\\|");
//list.add(new Object[]{s[0],s[1],s[2],s[3],s[4]});
list.add(new Object[]{s[1],s[0]});
} //遍历List<Object[]>集合中的每一个元素
/* for (Object[] o : list){
for (int i = 0; i < o.length; i++) {
System.out.println("==========="+o[i]);
} }*/ //执行批量插入操作
String sql = "INSERT INTO `test`(`name`,`area`) VALUES (?,?)";
jdbcTemplate.batchUpdate(sql, list); }

样本数据:测试.txt

测试数据1|测试数据2|测试数据3
测试数据4|测试数据5|测试数据6
测试数据7|测试数据8|测试数据9

单次循环插入:

     public void insertToTag(String filename) throws IOException {
InputStream is = new FileInputStream(filename); Map<String,String> map = new HashMap<>();
for (String readLine : IOUtils.readLines(is, "utf-8")) {
String[] s = readLine.split("\\|");
map.put(s[1],s[0]);
} String sql = "INSERT INTO `test`(`name`,`area`) VALUES (?,?)";
for (Map.Entry<String, String> stringStringEntry : map.entrySet()) {
// System.out.println(stringStringEntry.getKey()+"-->"+stringStringEntry.getValue());
jdbcTemplate.update(sql,stringStringEntry.getKey(),stringStringEntry.getValue());
} }

2、联表插入数据,将字典表中的id插入到另一张表

     public void insertToGuideBatch(String filename) throws IOException {

         InputStream is = new FileInputStream(filename);

         //字段名,id值
Map<String,Long> map1 = new HashMap<>(); //该方法类似于set集合
SqlRowSet s1 = jdbcTemplate.queryForRowSet("SELECT `id`,`area` FROM g_enforcement_tag");
while (s1.next()){
map1.put(s1.getString("area"),s1.getLong("id"));
} for (String readLine : IOUtils.readLines(is, "utf-8")) {
String[] s = readLine.split("\\|");
Long id = map1.get(s[0]);
// jdbcTemplate.update("insert into xxx value (?,?)",id,s[4]);
jdbcTemplate.update("INSERT INTO `g_enforcement_guide`(`prop1`,`prop2`,`prop3`,`prop4`,`prop5`) VALUES (?,?,?,?,?)","test",id,s[2],s[3],s[4]); }
}

JdbcTemplate批量插入数据的更多相关文章

  1. C#批量插入数据到Sqlserver中的四种方式

    我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...

  2. .Net批量插入数据到SQLServer数据库,System.Data.SqlClient.SqlBulkCopy类批量插入大数据到数据库

    批量的的数据导入数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 采用SqlBulkCopy来处理存储数据.SqlBulkCopy存储大批量的数据非常的高效,将内存中的数据表直接的一次性的存储 ...

  3. sql 中的Bulk和C# 中的SqlBulkCopy批量插入数据 ( 回顾 and 粗谈 )

    通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下.   其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk in ...

  4. Java 批量插入数据(Oracle)

    //批量添加20000条数据用时8秒. try {    String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SI ...

  5. 批量插入数据(基于Mybatis的实现-Oracle)

    前言:做一个数据同步项目,要求:同步数据不丢失的情况下,提高插入性能. 项目DB框架:Mybatis.DataBase:Oracle. -------------------------------- ...

  6. C#批量插入数据到Sqlserver中的三种方式

    本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生 成 ...

  7. SqlServer——批量插入数据

    像Major表里面批量插入数据演示: 代码如下: Declare @I int Set @I= Begin Tran InsertData: Insert into Major values(@I,' ...

  8. mybatis批量插入数据到oracle

    mybatis 批量插入数据到oracle报 ”java.sql.SQLException: ORA-00933: SQL 命令未正确结束“  错误解决方法 oracle批量插入使用 insert a ...

  9. SQLServer 批量插入数据的两种方法

    SQLServer 批量插入数据的两种方法-发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Ins ...

随机推荐

  1. Elasticsearch 7.x文档基本操作(CRUD)

    官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html 1.添加文档 1.1.指定文档ID PUT ...

  2. Laravel 别名Redis 与 Redis 扩展冲突

    use Redis; //通过别名引用会报错 今天尝试使用了 Laravel 的 redis 结果报了如下错误. Non-static method Redis::xxx() cannot be ca ...

  3. python 日志组件

    日志组件: import logging import logging.handlers import os class logs(object): def __init__(self): self. ...

  4. Burpsuite—渗透测试神器

    Google浏览器插件---SwitchyOmega Firefox浏览器插件---SwitchyOmega hosts代理工具---SwitchHosts[右击使用管理员权限打开] 双击burp-l ...

  5. 高级UI-RecyclerView头部和尾部添加

    在ListView中,可以添加头部和尾部,其添加方法也是十分的简单,直接调用listview.addHeaderView(view);和listview.addFooterView(view);即可, ...

  6. CenOS 7 java链接redis数据库

    完整代码 public class App { public static void main(String[] args) { System.out.println("Hello Worl ...

  7. 后ARM时代,嵌入式工程师的自我修养

    1 嵌入式学习的一些概念理解误区 很多嵌入式初学者认为,学嵌入式,就是学习ARM,就是学习开发板.买一块开发板,然后在上面“移植”u-boot.Linux内核,再使用busybox制作一个根文件系统, ...

  8. js 读取文本文件,日志内容

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. PCL学习(二)三维模型转点云 obj转pcd----PCL实现

    #include <pcl/io/io.h> #include <pcl/io/pcd_io.h> #include <pcl/io/obj_io.h> #incl ...

  10. mui 打包发布ios 测试

    1.首先在Hbuilder新建一个app项目,把你的代码放进来 2.在manifest.json里设置你想要的一切,图标,应用名,描述,入口页面等等等,然后再配置好你程序里需要用到的模块权限,按需配置 ...