jdbc 批处理操作

jdbc的批处理操作是指把一组SQL语句(增删改操作)一次性提交给数据库去执行,提高效率。分为Statement版和PreparedStatement版。

[size=medium]1. 例子[/size]

数据库软件:postgreSQL
数据库名称:test
数据库图表:intense
数据库表:miracle
id integer
name character varying(20)
timestamp timestamp without time zone

[size=small]a. Statement[/size]


Connection conn = null;
Statement st = null;

try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/test", "postgres", "postgres");

st = conn.createStatement();

String sql = "INSERT INTO intense.miracle(id, name, timestamp) VALUES(1,'particles',current_timestamp)";
st.addBatch(sql);

sql = "UPDATE intense.miracle SET name='parallel' WHERE id=1";
st.addBatch(sql);

int[] results = st.executeBatch();
for (int result : results)
System.out.println(result);
} catch (Exception ex) {
// Exception processing logic is omitted
}

Statement的批处理每次可以处理增、删、改中的一种或几种。

[size=small]b. PreparedStatement[/size]


Connection conn = null;
PreparedStatement ps = null;

try {
...
String sql = "INSERT INTO intense.miracle(id, name, timestamp) VALUES(?,?,?)";
ps = conn.prepareStatement(sql);

for (int i = 0; i < 4; i++) {
ps.setInt(1, i);
ps.setString(2, "income" + i);
ps.setTimestamp(3, new java.sql.Timestamp(System.currentTimeMillis()));
ps.addBatch();
}

int[] results = ps.executeBatch();
for (int result : results)
System.out.println(result);
} catch (Exception ex) {
// Exception processing logic is omitted
}

PreparedStatement的批处理每次只能处理增删改中的一种。

[size=medium]2. 批处理的最大数限制[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值