我要频繁的执行三个insert into操作,现在有点慢,请问应该如何优化?

msn365 2004-08-27 02:50:36
我要频繁的执行三个insert into操作,现在有点慢,请问应该如何优化?

我写了一个专门执行SQL的方法,然后连续运行三次这个方法来连续执行insert into操作
代码如下:
//--------------------------------------------------------------
public class exeSQL{
public void getExe (String sql){
String excep = "0";
try{
ResultSet objRS = null;
Statement stmt = null;
Connection conn = null;
Context ctx = null;
ctx = new InitialContext();
if (ctx == null)
throw new Exception("Error:Context!");
javax.sql.DataSource ds = (DataSource)ctx.lookup("java:comp/env/DBP");
conn = ds.getConnection();
stmt = conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
ctx.close();
}catch(Exception e){
excep = e.toString();
}

}

}

//-------------------------------------------------
String strSQL1,strSQL2,strSQL3 ;
strSQL1 = "insert into......";
strSQL2 = "insert into......";
strSQL3 = "insert into......";
for(;;){
doIT.getExe(strSQL1);
doIT.getExe(strSQL2);
doIT.getExe(strSQL3);
}


请问应如何优化,才能使运行效率更高呢?
...全文
208 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
z_jordon 2004-08-27
  • 打赏
  • 举报
回复
DataSource取出来的Connection最好的,绝对比一些所谓的连接池取出来的连接效率高许多。
PreparedStatement pstmt = conn.prepareStatement("insert into table values(?,?)");
for (;;) {
pstmt.setString(1,"xxx");
pstmt.setString(2,"yyy");
pstmt.addBatch();
}
pstmt.executeBatch();
Gooing 2004-08-27
  • 打赏
  • 举报
回复
1、使用连接池
2、数据库层使用存储过程

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧