JDBC系列:(5)使用PreparedStatement进行批处理
原创
©著作权归作者所有:来自51CTO博客作者lsieun的原创作品,请联系作者获取转载授权,否则将追究法律责任
批处理相关方法序号 | 方法 | 作用 |
---|
1 | void addBatch(String sql) | 添加批处理 |
2 | int[] executeBatch() | 执行批处理 |
3 | void clearBatch() | 清空批处理 |
package com.rk.db.e_batch;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.rk.db.utils.JDBCUtil;
public class Demo01
{
public static void main(String[] args)
{
Connection conn = null;
PreparedStatement pstmt = null;
try
{
// 获取连接
conn = JDBCUtil.getConnection();
//预编译的sql
String sql = "INSERT INTO T_Persons(UserName,Pwd) VALUES(?,?)";
// 创建stmt
pstmt = conn.prepareStatement(sql);
long startTime = System.currentTimeMillis();
for(int i=0;i<976;i++)
{
// 设置参数
pstmt.setString(1, "Lucy"+i);
pstmt.setString(2, "abc"+i);
// 添加批处理
pstmt.addBatch();
if(i%100==0)
{
// 批量执行
pstmt.executeBatch();
// 清空批处理
pstmt.clearBatch();
}
}
// 批量执行
pstmt.executeBatch();
// 清空批处理
pstmt.clearBatch();
long endTime = System.currentTimeMillis();
System.out.println("Total Time: " + (endTime - startTime));
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
JDBCUtil.close(conn, pstmt, null);
}
}
}