对于数据库来说2000条实在不能算多的 应该是其他原因
informix没有用过 不好说 :(
informix没有用过 不好说 :(
解决方案 »
- 强人解答 迭代器问题
- 帮忙看看吧。 小弟初学者
- 整合S2SH的时候怎么出来个这个异常,从来没见过...
- <input type="file" name="files"/>它的默认的是什么?
- 数据库连接
- tomcat 5.5+jdk1.5_06怎么配置?
- 如何用structs中的logic做resultset的循环
- 关于想servlet和jsp共享一个bean的操作,servlet中应该如何写?
- 我用ASP写的一个网站,几经周折,终于可以访问了,请大家来看看!
- 如何剪切(移动)一个文件
- 整和XMLBuilder,JavaScriptBuilder,HTMLBuilder的Jbuilder10!
- 高手请进,关于动态发布的问题
执行 SELECT 需要使用 PraparedStatement??
你开玩笑吧!!而且,数据库就down掉了!!(DOWN掉是什么意思??)
数据库死掉了???
看看有没有最新的JDBC驱动吧!老的INFORMAX JDBC 驱动不支持很多特性,
例如, Statement.cancel, Statement.setQueryTimeOut() 等!现在广东移动计费业务基本上都是INFORMAX数据库,每天都至少 200多万条数据,都没有事情!
当然,不是用的JDBC!(用的BDE)!
1。设置数据库事务连接超时的时间;
2。将记录拆分成小块,每次执行一小块(比如100条,可以用rownum限制),关闭数据库连接,再创建连接,再处理,依此类推。
3。换个好的中间件。
4。放弃该方法。
BDE 是什么东西?
public String GetCodeName(String code,String code_id)
throws Exception
{
String restring=code;
//System.out.println(code);
//System.out.println(code_id);
try
{
String getnameSQL ="";
if (code_id.trim().equals("UC"))
getnameSQL = "select dept_name from b_dept where dept_no='" + code.trim() + "'";
else if (code_id.trim().equals("UD"))
getnameSQL = "select post_name from b_position where post_no='" + code.trim() + "'";
else if (code_id.trim().equals("A001"))
getnameSQL = "select person_name from A001 where person_no ='" + code.trim() + "'";
else
getnameSQL = "select shortname from sys_codeitem where code='" + code.trim() + "' and code_id='" + code_id.trim() + "'";
dbc.prepareStatement(getnameSQL);
ResultSet Grs = dbc.executeQuery();
//System.out.println(Grs);
if (Grs.next())
{
restring = Grs.getString(1);
}
Grs.close();
}
catch (Exception es)
{
throw es;
}
return restring;
}
用的jdk是1。4,用的jdbc是2。0,还都是比较新的。应该说这个方法执行的东西不是很多,它是用来取一个代码的名字的,不过它是用在一个while循环中,循环中调用大概有2000条左右数据,我现在大概到160多条,informix 的数据库服务online就提示共享内存不足,不过现在开发用的数据哭服务器比较差,p4,128内存,resin,提示出错就是在dbc.prepareStatement(getnameSQL);
ResultSet Grs = dbc.executeQuery();
如果不用preparestatement,直接执行,那执行的效率太低了,半天出不来。
请高手指点指点!