`
ollevere
  • 浏览: 265652 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring 批量插入

 
阅读更多
    /**
     * 批量插入
     */
    public void insertBudget(List<CostBudget> budgetList) {
        final List<CostBudget> budgetListTemp = budgetList;
        if(budgetListTemp != null && budgetListTemp.size() > 0) {
            String sql= CommonConfig.getString("costbudget.insert.cost_budget","");
            this.jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
                @Override
                public void setValues(PreparedStatement ps, int i) throws SQLException {
                    CostBudget costBudget = budgetListTemp.get(i);
                    ps.setInt(1, costBudget.getTerm());
                    ps.setInt(2, costBudget.getBudgetType());
                    ps.setInt(3, costBudget.getDeptId() != null?costBudget.getDeptId():0);
                    ps.setString(4, costBudget.getImportDeptName());
                    ps.setString(5, costBudget.getKmBh());
                    ps.setString(6, costBudget.getImportKmMc());
                    ps.setBigDecimal(7, BigDecimal.valueOf(costBudget.getCurrentMonth()));
                    ps.setBigDecimal(8, BigDecimal.valueOf(costBudget.getCurrentMonthAdjust()));
                    ps.setBigDecimal(9, BigDecimal.valueOf(costBudget.getCurrentMonthAdAfter()));
                    ps.setBigDecimal(10, BigDecimal.valueOf(costBudget.getSumCurrent()));
                    ps.setBigDecimal(11, BigDecimal.valueOf(costBudget.getSumCurrentAdjust()));
                    ps.setBigDecimal(12, BigDecimal.valueOf(costBudget.getSumCurrentAdAfter()));
                    ps.setBigDecimal(13, BigDecimal.valueOf(costBudget.getYearBudget()));
                    ps.setBigDecimal(14, BigDecimal.valueOf(costBudget.getBudgetCompletionRate()));

                    //每2000条进行事物提交
                    if (i%2000 == 0) {
                        ps.executeBatch(); //执行prepareStatement对象中所有的sql语句
                    }
                }

                @Override
                public int getBatchSize() {
                    return budgetListTemp.size();
                }
            });
        }
    }

 

分享到:
评论

相关推荐

    mybatispuls3.5使用批量插入

    在Spring Boot的配置文件(application.properties或application.yml)中,你可以设置MyBatisPlus的相关属性,例如启用批量插入: ```properties mybatis-plus.mapper-locations=classpath:mapper/*.xml mybatis-...

    Spring JdbcDaoSupport 批量插入数据

    总结起来,`Spring JdbcDaoSupport`是简化数据库操作的有效工具,特别适合批量插入数据。通过`JdbcTemplate`的`batchUpdate`方法和`BatchPreparedStatementSetter`,我们可以高效地处理大量数据,同时保持代码的整洁...

    SpringBoot整合Mybatis连接SQL Server 跨库批量插入

    本篇将深入探讨如何在Spring Boot项目中整合Mybatis,实现对SQL Server数据库的跨库批量插入操作。 首先,我们需要在Spring Boot项目中引入相关的依赖。对于Mybatis的支持,我们需要添加Mybatis和其Spring Boot ...

    spring jdbc Templatetest 访问mysql数据库,批量插入数据

    本主题将详细讲解如何使用Spring JDBC Template访问MySQL数据库并进行批量插入数据的操作。 首先,我们需要在项目中引入Spring框架的相关依赖,通常包括`spring-context`和`spring-jdbc`。这些可以在Maven或Gradle...

    spring中使用mybatis实现批量插入的示例代码

    Spring 中使用 MyBatis 实现批量插入的示例代码 一、前言 在实际开发中,批量插入数据是非常常见的需求。使用 Spring 框架结合 MyBatis 框架,可以实现高效的批量插入操作。本文将详细介绍 Spring 中使用 MyBatis ...

    Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)

    在实际的项目开发中,批量插入和批量更新是常见的数据处理场景,尤其是在处理大量数据时,能够显著提升效率。本文将深入探讨如何在 Mybatis Plus 中自定义批量插入和批量更新,并根据唯一索引来确保数据的唯一性。 ...

    springboot项目在Oracle下测试批量添加和批量删除

    springboot项目在Oracle下测试批量添加和批量删除,使用spring boot构建的项目,数据库配置的时oracle,想换成MySQL自己把配置文件中的MySQL链接注释去掉即可。项目测试了Oracle下添加,删除数据,批量添加和批量删除...

    Spring-Batch-with-Cassandra:使用Cassandra定制Spring批处理

    Spring Batch 是一个强大的框架,专为执行批量处理任务而设计,它在企业级应用中广泛使用。当结合 Apache Cassandra 这种分布式NoSQL数据库时,Spring Batch 可以帮助开发者构建高效、可扩展的批处理解决方案。在这...

    Struts2批量插入

    Struts2批量插入是Web开发中常见的操作,主要用于提高数据处理效率,特别是在处理大量数据时。Struts2作为一款流行的Java MVC框架,提供了强大的功能来支持这种操作。本篇文章将深入探讨Struts2如何实现批量插入,并...

    ibatis的批量插入DAO实例

    标题 "ibatis的批量插入DAO实例" 暗示了我们即将探讨的是关于Ibatis框架在数据库批量插入操作中的具体实现。Ibatis是一个优秀的持久层框架,它允许开发者将SQL语句与Java代码分离,提高了代码的可读性和可维护性。在...

    mybatis中批量插入的两种方式(高效插入)

    在处理大量数据时,批量插入是一种提高性能的有效策略。本文将深入探讨MyBatis中实现批量插入的两种高效方式。 ### 1. MyBatis `foreach` 标签 `foreach` 是MyBatis中用于在SQL语句中迭代集合的标签,特别适合构建...

    Hibernate+JDBC实现批量插入、更新及删除的方法详解

    Hibernate+JDBC实现批量插入、更新及删除的方法详解 概述:本文主要介绍了Hibernate+JDBC实现批量插入、更新及删除的方法,通过实例形式详细分析了Hibernate与JDBC针对数据库的批量操作相关实现技巧。 知识点一:...

    Spring框架实现Excel批量导入数据

    将验证过的数据以批量的方式插入到数据库中,可以显著提高性能。在Spring Boot项目中,可以使用@Transactional注解确保数据的原子性和一致性。 6. **异常处理和反馈**: 为了提供良好的用户体验,需要捕获并处理...

    spring mvc框架中接收前端传递的批量数据的两种超实用例子

    在Spring MVC框架中,处理前端批量传递的数据是常见的需求,特别是在大数据操作或者批量更新、删除等场景下。本文将详细讲解两种实用的方法来接收并处理这些数据。 **方法一:数组或集合参数** 1. **JSON数组传递*...

    Spring Data MongoDB 数据库批量操作的方法

    在 Spring Data MongoDB 中,使用 BulkOperations 可以实现批量插入操作,例如: ``` testModel m1 = new testModel("m1", 10); testModel m2 = new testModel("m2", 20); BulkOperations ops = mongoTemplate....

    MyBatis批量插入(insert)数据操作

    在MyBatis中,批量插入数据是一种提高性能的有效方式,特别是在处理大量数据时。本文将详细介绍如何在MyBatis中实现批量插入,并通过一个具体的示例来说明。批量插入操作通常涉及以下关键步骤: 1. **实体类定义**...

    定时读取PDF文件,并批量插入到数据库

    在IT行业中,定时任务是常见的自动化操作,而本项目的核心在于定时读取PDF文件并将其内容批量插入到数据库。这个任务涉及到多个技术点,包括线程管理、PDF处理、数据库操作以及工具类的设计。以下是对这些知识点的...

    MyBatis批量插入数据过程解析

    由于项目使用了Spring+MyBatis的配置,所以我们打算使用MyBatis批量插入。 在MyBatis中,批量插入数据可以通过foreach标签来实现。foreach标签的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach...

    springDataJapDemo

    Spring Data JPA是Spring框架的一个模块,用于简化Java Persistence API(JPA)的使用,它提供了与各种数据库交互的能力,而无需编写大量的SQL代码。在本文中,我们将深入探讨如何利用Maven构建一个基于Spring Data ...

    Spring 揭秘 全面 深入了解Spring

    最后,本书还将涉及Spring的其他模块,如Spring Batch(批量处理)、Spring Integration(企业服务总线)和Spring Cloud(微服务开发工具)。这些内容将帮助读者理解Spring如何在大型分布式系统中发挥作用。 ...

Global site tag (gtag.js) - Google Analytics