讨论一下,大家在一个.jsp里,如果要查询数据库5次,大家是取5次连接,再5次释放,还是一次连接,最后一次释放?? to singedcat(以梦为马) 以前我也是多次连接多次释放。现在改为一次连接,多次使用。最后释放,但出问题了。这是提示信息 Connection reset by peer: socket write error 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Connection conn=null;Stamtent stmt=null;try{}catch(Exception e){ioe.printStackTrace();} 请以下格式使用数据库连接Connection conn=null;Stamtent stmt=null;ResultSet rs=null;try{ conn=数据据对象.getConnection(); stmt=conn.createStatement(); 连续使用查询N次 ….其他代码}catch(Exception e){ ioe.printStackTrace();}finally{ try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException SQLE) { SQLE.printStackTrace(); }} to 回复人: wufeng0916(aa) ( 每使用一次提交一事务?必须? to 回复人: wufeng0916(aa) Test.jsp DBManager.getConnection()这个方法判断连接变量是否为空,如果为空, 取得连接,采用数据库连接沲 。。 。。 在这中间可能都用到这个数据库类里的几个方法,每个方法 都是一些查询,然后把查询结果显示出来。 这每个方法,都是首先调用getConnection()然后。。 。。 。。 DBManager.freeConnection()这个方法释放连接,判断连接变量是否为空,不为空就释放。 不过,这里没有用事务,因为我只是用到查询,没有用到update之类的。不过,加上事务应该好些。 可惜啊,一同时打开页面抛一些异常 如果你不想自己写连接池,可以用一些容器自带的连接池技术实现,比如tomcat 关于数据库的操作一定要少连接,一次连接要尽可能多坐事情。关于事务处理,是当一次连接数据库要出现多次modify操作的时候所必须的,如果仅仅是select则不需要事务。 我的办法比较笨 写在bean里面 每次查询只得到一个结果数组 连接和关闭连接全在类里了 回复人: gaochao79() 你也只是用到数据库就连接再关闭。太耗系统资源了 呵呵 是啊不过关系不大 大部分网页都发布成html的 不过以后还是会把bean改写一下 to gaochao79() (: 以前我也是用你这种。封装在类中,没错。 后来我想在一个页面里开始取连接,然后结束的时候再关闭。但出错了。 因为在A电脑上打开 Test.jsp的时候,并且Test.jsp取得连接在没释放之前。这个时候在B电脑上再打开Test.jsp。因为连接还没释放,所以就执行到了Test.jsp中一段代码 statement = getConnection().createStatement(); ResultSet resultset = statement.executeQuery(s); //B电脑上这个页面,因为A电脑页面上同一个连接没释放,所以没错。 但可能这个时候,A电脑运行的这个页面已经运行到最后,把这个连接 释放掉了 接下来的ResultSet就出错了?????? 大家如何办啊? rs啊,stmt啊每次用完后都关掉!只留con在最后关掉。估计不会socket error. to enjoy330(*寒林*) : 但是错就错在这个逻辑,我试了每次用完之后关闭rs但因为在并发的时候,可能把连接给释放掉了。会出错。 因为在A电脑上打开 Test.jsp的时候,并且Test.jsp取得连接在没释放之前。这个时候在B电脑上再打开Test.jsp。因为连接还没释放,所以就执行到了Test.jsp中一段代码 statement = getConnection().createStatement(); ResultSet resultset = statement.executeQuery(s); //B电脑上这个页面,因为A电脑页面上同一个连接没释放,所以没错。 但可能这个时候,A电脑运行的这个页面已经运行到最后,把这个连接 释放掉了 接下来的ResultSet就出错了?????? 大家如何办啊? 建议不要把数据库联接的代码放在jsp文件里面!!放到bean里面不行吗???效率高多了!! to : zhangqunjun() : 都是放在bean里面的啊,这样写,只是为了让大家看清楚 纯jsp上传下载实现 【求助】ACTION用法 请问一下。。。。。。。。。 请问该段代码由什么问题吗?为何无法转发到nulldisp在strtusconfig.xmll映射的jsp页面? java和j2ee有什么联系 寻找一位好师傅 eclipse debug按F6一行一行走,为什么走到rs=sql.executequery(t)之后直接跳到末尾 紧急求救! 字符串中的"\"问题! 我用jsp连sqlserver2000,出现下面的错。 火龙果??? 请高手帮助解决一下,这是什么问题? 哪里有powerdesign 比较新的版本下载呀(100分)
Stamtent stmt=null;
try{
}catch(Exception e){
ioe.printStackTrace();
}
Connection conn=null;
Stamtent stmt=null;
ResultSet rs=null;
try{
conn=数据据对象.getConnection();
stmt=conn.createStatement();
连续使用查询N次
….其他代码
}catch(Exception e){
ioe.printStackTrace();
}finally{
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException SQLE) {
SQLE.printStackTrace();
}
}
回复人: wufeng0916(aa) (
每使用一次提交一事务?必须?
回复人: wufeng0916(aa) Test.jsp
DBManager.getConnection()这个方法判断连接变量是否为空,如果为空,
取得连接,采用数据库连接沲
。。
。。
在这中间可能都用到这个数据库类里的几个方法,每个方法
都是一些查询,然后把查询结果显示出来。
这每个方法,都是首先调用getConnection()然后。。
。。
。。
DBManager.freeConnection()这个方法释放连接,判断连接变量是否为空,不为空就释放。 不过,这里没有用事务,因为我只是用到查询,没有用到update之类的。不过,加上事务应该好些。
可惜啊,一同时打开页面抛一些异常
关于事务处理,是当一次连接数据库要出现多次modify操作的时候所必须的,如果仅仅是select则不需要事务。
你也只是用到数据库就连接再关闭。太耗系统资源了
不过以后还是会把bean改写一下
以前我也是用你这种。封装在类中,没错。
后来我想在一个页面里开始取连接,然后结束的时候再关闭。但出错了。 因为在A电脑上打开 Test.jsp的时候,并且Test.jsp取得连接在没释放之前。
这个时候在B电脑上再打开Test.jsp。因为连接还没释放,所以就执行到了Test.jsp
中一段代码
statement = getConnection().createStatement();
ResultSet resultset = statement.executeQuery(s);
//B电脑上这个页面,因为A电脑页面上同一个连接没释放,所以没错。
但可能这个时候,A电脑运行的这个页面已经运行到最后,把这个连接
释放掉了
接下来的ResultSet就出错了??????
大家如何办啊?
但是错就错在这个逻辑,我试了每次用完之后关闭rs
但因为在并发的时候,可能把连接给释放掉了。会出错。
因为在A电脑上打开 Test.jsp的时候,并且Test.jsp取得连接在没释放之前。
这个时候在B电脑上再打开Test.jsp。因为连接还没释放,所以就执行到了Test.jsp
中一段代码
statement = getConnection().createStatement();
ResultSet resultset = statement.executeQuery(s);
//B电脑上这个页面,因为A电脑页面上同一个连接没释放,所以没错。
但可能这个时候,A电脑运行的这个页面已经运行到最后,把这个连接
释放掉了
接下来的ResultSet就出错了??????
大家如何办啊?
放到bean里面不行吗???效率高多了!!
都是放在bean里面的啊,这样写,只是为了让大家看清楚