//批处理可以大幅提升增、删、改的速度
public class Batch {
//测试
public static void main(String[] args) throws Exception {
//create: 5281ms
/*long start = System.currentTimeMillis();
for(int i=0; i < 100; i++) {
create(i);
}
long end = System.currentTimeMillis();
System.out.println("create: " + (end - start) + "ms");*/
// createBatch: 1203ms
/*long start = System.currentTimeMillis();
createBatch();
long end = System.currentTimeMillis();
System.out.println("createBatch: " + (end - start) + "ms");*/
//删还是很快的
deleteBatch();
}
static void create(int i) throws Exception {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
// 3创建语句
String sql = "insert into user(name, birthday, money) values(?, ?, ?)";
ps = conn.prepareStatement(sql);
ps.setString(1, "name" + i);
ps.setDate(2, new Date(System.currentTimeMillis()));
ps.setFloat(3, 100f);
//先放到包里面去
ps.addBatch();
// 4.执行结果
ps.executeUpdate();
} finally {
JdbcUtils.free(rs, ps, conn);
}
}
static void createBatch() throws Exception {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
// 3创建语句
String sql = "insert into user(name, birthday, money) values(?, ?, ?)";
ps = conn.prepareStatement(sql);
for(int i=0; i < 100; i++) {
ps.setString(1, "name" + i);
ps.setDate(2, new Date(System.currentTimeMillis()));
ps.setFloat(3, 100f);
//先放到包里面去
ps.addBatch();
}
// 4.执行结果
int[] arr = ps.executeBatch();
System.out.println(arr);
} finally {
JdbcUtils.free(rs, ps, conn);
}
}
static void deleteBatch() throws Exception {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
// 创建语句
st = conn.createStatement();
String sql = "delete from user where id > 5";
st.addBatch(sql);
st.executeBatch();
} finally {
JdbcUtils.free(rs, st, conn);
}
}
}
分享到:
相关推荐
本文将详细阐述JDBC批处理的基本概念、优势以及如何在实际应用中使用。 一、批处理的概念 批处理是指一次性提交多个SQL语句到数据库进行执行,而不是逐个发送和执行。在JDBC中,批处理主要通过Statement或...
在给定的博客链接中,可能详细解释了这些概念,并提供了示例代码来演示如何在实际应用中实现JDBC批处理。通过学习这个资源,开发者可以更好地理解和应用批处理技术,提升Java数据库应用程序的效率。
例如,如果你需要更新大量用户的数据,可以使用JDBC批处理来批量更新,减少网络通信和数据库事务处理的开销。 结合这三个技术,我们可以实现一个功能强大的系统。例如,一个基于Web的应用可能需要从用户上传的Excel...
JDBC批处理的实现依赖于数据库驱动的实现,不同数据库的驱动可能会有不同的优化策略。深入研究JDBC源码,可以帮助我们理解批处理在底层是如何工作的,以及如何针对特定数据库优化性能。 ### 8. 工具支持 很多...
- 批量操作数据库:利用JDBC批处理功能优化数据库操作性能。 - Job多个Step的执行:Job可以包含多个Step,根据需要组合执行。 - 条件流程和流程决策:使用Flow和Decision元素创建条件分支和流程控制。 - 并发处理:...
**JDBC批处理详解** 在Java数据库连接(Java Database Connectivity, JDBC)中,批处理是一项重要的功能,它允许开发者一次性提交多个SQL语句,从而提高数据处理的效率和性能。批处理是数据库操作中的优化手段,...
此外,JDBC批处理功能允许一次发送多个SQL语句,提高效率。 为了确保最佳性能和安全性,开发者应关注以下几个方面: - 使用最新的JDBC驱动版本,以获取最新的特性、优化和安全修复。 - 配置连接池,如C3P0、...
#### 十九、JDBC批处理功能 - **批处理**:将多条SQL语句组合在一起作为单一操作执行。 - **实现方式**: - 使用`Statement.addBatch()`添加SQL语句到批处理队列。 - 调用`Statement.executeBatch()`执行批处理。...
此外,还可以使用JDBC批处理功能来提高性能。 总的来说,Java连接SQL Server 2005涉及的知识点包括:JDBC API、数据库连接URL的格式、数据库连接池的使用(如C3P0或HikariCP)、事务管理、异常处理以及优化技巧。...
10. **JDBC批处理API**: Hibernate底层使用JDBC的批处理API(Statement.addBatch()和Statement.executeBatch()),用户也可以直接使用JDBC批处理,绕过Hibernate的部分逻辑,获取更高的性能。 11. **性能优化注意...
除了核心的批处理功能,amplecode还具备日志记录和性能监控功能。通过详细的日志输出,开发者可以追踪到每一个批处理操作的执行情况,便于调试和问题定位。同时,性能监控可以帮助开发者优化代码,找出可能存在的...
对于Java开发者来说,使用JDBC批处理可以有效地管理与数据库的交互,尤其是在处理大量数据时,能够显著提升性能。 【标签】"sql2000+java 批处理" 指明了技术栈,即使用Java编程语言与SQL Server 2000数据库进行...
JDBC Driver 3.0是Java SE 6引入的一个重要更新,它带来了许多增强功能和性能改进,旨在提升开发者的体验和应用程序的效率。此版本的驱动程序支持最新的SQL标准,并提供了对多种数据库特性的广泛支持,如存储过程、...
6. **批处理(Batch Processing)**:对于需要执行大量相似SQL语句的情况,JDBC提供批处理功能,允许一次发送多个SQL语句,从而提高效率。 7. **JDBC URL**:每个数据库驱动都有一个特定的JDBC URL格式,用于标识要...
5. **JDBC批处理**:对于大量相似的SQL语句,JDBC的批处理功能可以提高效率,减少网络传输和数据库处理的开销。 6. **PreparedStatement**:预编译的SQL语句,可以防止SQL注入攻击,并提供性能优化,尤其在重复执行...
在开发过程中,还需要注意兼容性和性能优化,例如选择合适的JDBC批处理大小,使用预编译的SQL语句避免解析开销,以及正确处理异常以避免资源泄露。了解Oracle12C的JDBC驱动特性以及如何有效利用它们,对于开发高效、...
JDBC 2.0在JDK 1.2版本中引入了一系列增强的功能,极大地扩展了Java应用程序与数据库交互的能力。以下是对这些新功能的详细解释: 1. **可滚动结果集**: 在JDBC 1.1中,结果集通常是只能向前滚动的。但在JDBC 2.0...
JDBC批处理是Java中用于提高数据库操作性能的一个功能。它允许将多条SQL语句组合成一个批处理,从而减少与数据库的交互次数,提高效率。在文中,作者可能通过设置PreparedStatement的addBatch()方法,然后调用...
### JDBC详解:连接操作数据库、处理大数据、批处理 #### 一、JDBC简介 JDBC,全称为Java DataBase Connectivity(Java数据库连接),是Sun公司(现已被Oracle收购)为了解决不同数据库间的操作差异性而设计的一套...