mysql中in()处理一万条元素java代码案例
时间: 2024-01-23 21:02:06 浏览: 69
Java实现的mysql事务处理操作示例
下面是一个使用 PreparedStatement 和 Batch 操作的 Java 代码示例,可以处理一万条元素的 MySQL in() 查询:
```java
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class MySQLInQueryExample {
private static final String DB_URL = "jdbc:mysql://localhost:3306/mydb";
private static final String DB_USER = "username";
private static final String DB_PASSWORD = "password";
public static void main(String[] args) {
try {
// 1. 创建数据库连接
Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
// 2. 准备 SQL 语句
String sql = "SELECT * FROM mytable WHERE id IN (";
int batchSize = 1000; // 批处理大小
int count = 0;
// 3. 构建参数列表
List<Integer> idList = new ArrayList<>();
for (int i = 1; i <= 10000; i++) {
idList.add(i);
}
// 4. 执行查询
PreparedStatement pstmt = conn.prepareStatement(sql);
for (Integer id : idList) {
pstmt.setInt(1, id);
pstmt.addBatch();
count++;
if (count % batchSize == 0) {
int[] results = pstmt.executeBatch();
System.out.println("执行了 " + results.length + " 条记录");
}
}
int[] results = pstmt.executeBatch();
System.out.println("执行了 " + results.length + " 条记录");
// 5. 关闭连接
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
此代码将生成一个 10000 个元素的 idList,然后使用 PreparedStatement 和 Batch 操作,每次执行 1000 条记录,最终完成一万条元素的 MySQL in() 查询。
阅读全文