public void insertBANDWIDTH_AREA_TEMP(final List<AreaTempBandwidth> bands) {
long executeStart = System.currentTimeMillis();
DefaultTransactionDefinition paramTransactionDefinition = new DefaultTransactionDefinition();
TransactionStatus status = transactionManager.getTransaction(paramTransactionDefinition);
logger.info("start to insertBANDWIDTH_AREA_TEMP ......");
try {
jdbcTemplate
.batchUpdate(
"insert INTO BANDWIDTH_AREA_TEMP(TIME_NUM,CHANNEL_ID,AREA_ID,IN_DATA,OUT_DATA,DAY) values(?,?,?,?,?,?)",
new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
// TODO Auto-generated method stub
ps.setString(1, bands.get(i).getTimeNum());
ps.setString(2, bands.get(i).getChannelID());
ps.setString(3, bands.get(i).getAreaID());
ps.setString(4, bands.get(i).getInData());
ps.setString(5, bands.get(i).getOutData());
ps.setString(6, bands.get(i).getDay());
//每50000条进行事物提交,不加的话数据量超过6w会有问题
if (i % 50000 == 0) {
ps.executeBatch(); //执行prepareStatement对象中所有的sql语句
}
}
@Override
public int getBatchSize() {
// TODO Auto-generated method stub
return bands.size();
}
});
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
} finally {
bands.clear();
}
logger.info("insertBANDWIDTH_AREA_TEMP finished use [" + (System.currentTimeMillis() - executeStart) / 1000
+ "] seconds");
}
分享到:
相关推荐
批量插入数据在处理大量数据时能显著提升性能,因为数据库通常会对批量操作进行优化。在`JdbcDaoSupport`中,我们可以通过`JdbcTemplate`的`batchUpdate(String sql, BatchPreparedStatementSetter setter)`方法来...
例如,大量数据的批量插入可能更适合使用JdbcTemplate的`batchUpdate()`方法,或者直接使用JDBC的PreparedStatement来提高效率。 9. **最佳实践** - 保持SQL语句简洁,避免在业务代码中混杂复杂的SQL。 - 避免...
在Java开发中,Spring JDBC Template是...在本示例中,我们学习了如何配置Spring JDBC Template,创建数据库连接,以及如何使用它来实现批量插入数据到MySQL数据库。这对于Java开发者来说是一项基础但至关重要的技能。
JdbcTemplate还支持批量操作,比如批量插入: ```java public void batchInsert(List<User> users) { List[]> batchArgs = new ArrayList(); for (User user : users) { batchArgs.add(new Object[]{user....
批处理可以显著提高性能,特别是在需要插入大量数据时。然而,要注意批处理也有其限制,比如事务管理的复杂性增加,以及可能出现的错误处理问题。如果批处理中的任何一条语句失败,整个批处理通常会被回滚,这可能...
SpringBoot JdbcTemplate批量操作是提高数据处理效率的重要手段,尤其在处理大量数据插入或更新时。JdbcTemplate作为Spring框架的一部分,提供了便捷且安全的数据库访问方式,它简化了JDBC的使用,避免了手动管理...
Spring Batch 是一个强大的批处理框架,它为处理大量数据提供了灵活和可扩展的解决方案。在本教程中,我们将探讨如何使用 Spring Batch 读取文本(txt)文件,并将读取到的数据处理后写入数据库。 首先,我们需要...
Spring的JdbcTemplate是Spring框架中的一个核心组件,用于简化数据库操作。它提供了一种模板方法模式,抽象出了一些常见的数据库访问任务,使得开发者无需关注低级的JDBC细节,如打开和关闭连接、处理结果集等,从而...
批量插入操作在数据库处理大量数据时非常常见,它可以显著提高性能,因为数据库通常会优化批量处理,而不是单独处理每一项。在提供的代码段中,`batchInsertIndicesData`方法展示了如何使用`JdbcTemplate`来批量插入...
对于数据导入,项目可能会包含读取文件(例如CSV或XML)中的数据,然后使用JdbcTemplate批量插入到MySQL数据库。这通常涉及解析文件,创建数据行的列表,然后使用`batchUpdate`方法将这些行作为批处理语句执行。...
JdbcTemplate会处理事务,确保数据完整地插入到数据库中。 7. **事务管理**: JdbcTemplate自动处理了数据库事务。如果在一组操作中发生异常,它会回滚事务,保护数据的完整性。我们可以通过编程式或者声明式的...
将验证过的数据以批量的方式插入到数据库中,可以显著提高性能。在Spring Boot项目中,可以使用@Transactional注解确保数据的原子性和一致性。 6. **异常处理和反馈**: 为了提供良好的用户体验,需要捕获并处理...
在Spring框架中,JdbcTemplate是用于简化数据库操作的重要组件,它提供了一种模板化的方式处理SQL,使得开发者能够更加安全、高效地与数据库交互。以下是对JdbcTemplate使用的一些详细说明: 1. **创建表和执行SQL...
6. **性能优化**:由于可能涉及大量数据迁移,应考虑批量插入、多线程处理等优化策略,以提高迁移速度。 这个工具类源码的实现细节可能包括使用Spring Boot的JdbcTemplate或者JPA(Java Persistence API)进行...
除了基本的插入操作,`JdbcTemplate`还支持批量插入、查询、更新和删除等操作,同样通过简单的API调用即可完成。其优点在于代码简洁、易于维护,并且由于Spring的异常转换机制,可以将数据库异常转化为易于理解的...
在Spring框架中,JdbcTemplate是用于简化数据库操作的一个重要工具。它提供了执行SQL语句的能力,包括单条语句执行和批处理。本文将详细解释如何使用JdbcTemplate来执行多条SQL语句,以及其在事务管理中的作用。 ...
JavaEE是企业级应用开发的重要框架,而Spring框架作为JavaEE的核心部分,提供了一系列的强大功能,其中JdbcTemplate是Spring提供的一个用于简化数据库操作的工具。本篇将详细讲解JdbcTemplate的简单示例,帮助开发者...
`JdbcTemplate`是Spring对JDBC API的一个轻量级包装,它通过提供一系列模板方法来处理常见的JDBC操作,如查询、更新、插入和删除数据。这样可以避免手动处理连接、事务和异常,降低了代码的复杂性。`JdbcTemplate`...
8. **错误处理和异常安全**:在处理大量数据时,错误处理至关重要。使用Spring JdbcTemplate可以捕获并处理SQL相关的异常,同时,确保在发生错误时能够正确回滚事务,保持数据一致性。 9. **测试和监控**:在实际...
在本教程中,我们将深入探讨如何使用Java JDBC连接到Hive数据库,并执行基本的数据操作。Hive是一个基于Hadoop的数据仓库工具,它允许我们对大规模数据集进行SQL-like查询。 首先,我们需要在Java项目中引入Hive ...