在一个servlet中,如何只向数据库提交一次,就同时执行多个SQL语句

yzysy 2002-06-05 04:00:27
public ResultSet executeQuery(String sql)
{rs = null;
try
{rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
上述的方法只能一次提交一个SQL语句,
如果是要insert一百行,得执行一百次该方法
能不能只用一次,就将一百行insert进去呢?
...全文
300 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mhyin 2002-06-06
  • 打赏
  • 举报
回复
qiyao(享受每一天),rs.begin(),stmt.executeQuery(sql,“host ip”,"database name")所用的这两个方法我怎么没有在doc里见的过,请指教以下。
北极猩猩 2002-06-06
  • 打赏
  • 举报
回复
干脆用存储过程吧。
pentax 2002-06-05
  • 打赏
  • 举报
回复
当时俺被逼的没有办法了,只好用SQL中的union来把一片查询语句连起来,批处理不能用于查询,事务好像也是一条一条的提交,结果还不是在一个ResultSet中,我记得那个玩意好像有个getMoreResultSet方法,但还是不在一个ResultSet中,至于插入删除修改可以用批处理。
qiyao 2002-06-05
  • 打赏
  • 举报
回复
哈哈------
有意思。。。。
1,你自己做一个连接池
2,like this :rs = stmt.executeQuery(sql,“host ip”,"database name");
3,注意,如果网断了,你的连接池如何处理
yzysy 2002-06-05
  • 打赏
  • 举报
回复
不行啊,我的table 2是在另一台主机的另一个数据库中
qiyao 2002-06-05
  • 打赏
  • 举报
回复
可以:
public ResultSet executeQuery(String sql)
{rs = null;
try
{ rs.begin();//事务处理
while(..)
       rs = stmt.executeQuery(sql);
rs.commit();
}
catch(SQLException ex)
{
rs.rollback();
System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
注意:1。update data时要加事务处理
   2。象楼上说的,优化SQL
frenzieddragon 2002-06-05
  • 打赏
  • 举报
回复
JDBC 2.0不是支持成批更新吗?
conn.setAutoCommit(false);
stmt = conn.createStatement();
stmt.addBatch("insert into ...");
stmt.addBatch("insert into ...");
...
stmt.executeBatch();
conn.commit();
conn.setAutoCommit(true);
yzysy 2002-06-05
  • 打赏
  • 举报
回复
不行啊,我的table 2在另一个主机的另一个数据库中
saintKnight 2002-06-05
  • 打赏
  • 举报
回复
使用INSERT INTO table(fieldname,fieldname2,...) select fieldname,fieldname2,... from table 2 where ...可以将100条记录一次插入表中

81,091

社区成员

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

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