当前位置: 技术问答>java相关
关于连续访问数据库,这个问题怎么有时好有时出错?
来源: 互联网 发布时间:2015-08-19
本文导语: 下面部分代码: ResultSet rs1 = null; ResultSet rs2 = null; String name1 = null; String id = null; String sql = null; String strTemp = null; sql = "select * from Table1"; rs1 = dbconn.executeQuery(sql); while(rs1.next()) { name1 = getString("name"); ...
下面部分代码:
ResultSet rs1 = null;
ResultSet rs2 = null;
String name1 = null;
String id = null;
String sql = null;
String strTemp = null;
sql = "select * from Table1";
rs1 = dbconn.executeQuery(sql);
while(rs1.next())
{
name1 = getString("name");
strTemp = "select * from Table2 where name='"+name1+"'";
rs2 = dbconn.executeQuery(strTemp);
while(rs2.next())//考虑可能数据量很大,所以在while里面在套用while
{
id = rs2.getString("id");
...
}
rs2.close();
}
rs1.close();
出错提示:
db.executeQuery: [Microsoft][ODBC SQL Server Driver]Connection is busy with resu
lts for another hstmt
大家帮一把!很急,谢先了!
ResultSet rs1 = null;
ResultSet rs2 = null;
String name1 = null;
String id = null;
String sql = null;
String strTemp = null;
sql = "select * from Table1";
rs1 = dbconn.executeQuery(sql);
while(rs1.next())
{
name1 = getString("name");
strTemp = "select * from Table2 where name='"+name1+"'";
rs2 = dbconn.executeQuery(strTemp);
while(rs2.next())//考虑可能数据量很大,所以在while里面在套用while
{
id = rs2.getString("id");
...
}
rs2.close();
}
rs1.close();
出错提示:
db.executeQuery: [Microsoft][ODBC SQL Server Driver]Connection is busy with resu
lts for another hstmt
大家帮一把!很急,谢先了!
|
you driver can't support so many concurrent connections.
please use other drivers.
please use other drivers.
|
dbconn是如何写的?
问题在dbconn!?
问题在dbconn!?
|
需要建两个连接才行,你用一个连接获得两个ResultSet可不行。
|
dbconn.executeQuery(sql); //这个是你自己定义的吗?内部具体是怎么写的?
----------
rs2 = dbconn.executeQuery(strTemp);
while(rs2.next())//考虑可能数据量很大,所以在while里面在套用while
{
id = rs2.getString("id");
...
}
rs2.close();
-----------
在这里对应的Statement 也要关闭。
----------
rs2 = dbconn.executeQuery(strTemp);
while(rs2.next())//考虑可能数据量很大,所以在while里面在套用while
{
id = rs2.getString("id");
...
}
rs2.close();
-----------
在这里对应的Statement 也要关闭。
|
不用建两个连接。但要实例化两个Statement对象,分别发出SQL查询,返回各自的ResultSet。像你这样用一个dbconn来做是不行的。
|
你需要用两个不同的Statement就可以解决你的问题了。
并不需要用两个connection。
并不需要用两个connection。
|
一个statement只能对应一个resultset,你这样写是对应了两个resultset,
重新改写一下吧
重新改写一下吧