日期:2014-05-16  浏览次数:20484 次

jdbc优化,零碎

?例如:?

?????For(int I = 0; I < 1000; ++I)?
{?
PreparedStatement ps = conn.prepareStatement("select a,b from t?
where c = " + I);?
ResultSet rs = Ps.executeQuery();?
Rs.close();?
Ps.close();?
}?

这里不会用到缓冲. 每次循环向数据库发送一条不同的 SQL 语句. 每次循环都重新?
计算新的访问 方案, 用这种方法我们会浪费大量的 CPU 周期. 但是, 看看下一个片?
段:?

PreparedStatement ps = conn.prepareStatement("select a,b from t where c?
= ?");?
For(int I = 0; I < 1000; ++I)?
{?
ps.setInt(1, I);?
ResultSet rs = ps.executeQuery();?
Rs.close();?
}?
ps.close();?

这样就会高效得多. 发送给数据库的语句在 sql 中使用 @#?@# 符号来参数化. 这意味着?
每次循环 发送的是同一条语句, 在 "c=?" 部分带有不同的参数. 这样就允许数据库?
重用语句的访问方案, 是程序在数据库内部运行得更高效. 这基本上能使你的程序?
运行得更快, 或者使数据库用户能更多 地使用 CPU.?