免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2341 | 回复: 4
打印 上一主题 下一主题

求救:连续执行sql,什么时候释放数据库连接? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-10-02 07:23 |只看该作者 |倒序浏览
jsp操作数据库时,怎样才能释放数据库链接而有不使连续的操作数据库出现错误呢?
如:
String sql="insert into 表名(列1,列2,...) values(值1,值2,...)"
DBCon dbCon=new DBCon();

for(int i=0;i<65535(或更大);i++){
       dbCon.executeUpdate(sql);
}
其中:DBCon 为链接数据库的bean  什么时候在bean中释放链接数据库,不至于使下一连续的sql出错?
请高手指点  指点!!!
谢谢!!

论坛徽章:
0
2 [报告]
发表于 2004-10-02 12:26 |只看该作者

求救:连续执行sql,什么时候释放数据库连接?

在你的Bean里定义几个方法:
getConnection
disConnection
beginTransaction
commit
rollback
executeUpdate。
client:

  1. String sql="insert into 表名(列1,列2,...) values(值1,值2,...)"
  2. DBCon dbCon=new DBCon();
  3. DBCon.getConnection();
  4. try{
  5. DBcon.beginTransaction()
  6. for(int i=0;i<65535(或更大);i++){
  7. dbCon.executeUpdate(sql);
  8. DBcon.commit();
  9. }
  10. }catch(){
  11. DBcon.rollback();
  12. }finally{
  13.   DBcon.disConnection();
  14. }
复制代码

JDBC是支持批量更新的,查查资料,在封状一个批量更新的方法。

论坛徽章:
0
3 [报告]
发表于 2004-10-02 14:09 |只看该作者

求救:连续执行sql,什么时候释放数据库连接?

仁兄:

谢谢你!!!

祝你国庆节快乐!!!!!!

论坛徽章:
0
4 [报告]
发表于 2004-10-02 14:55 |只看该作者

求救:连续执行sql,什么时候释放数据库连接?

仁兄:
再麻烦你一下
我没有找到jdbc批量刷新的资料
你能不能说得具体点,谢谢!!
以下是我的bean
服务器为:resin+iis
数据库为 oracle9i
连接数据库Bean为
import java.sql.*;


public class DBcon {
String DBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String ConStr="jdbcdbc:cqgl";
String User="SYSDBA";
String Password="masterkey";
Connection conn = null;
ResultSet rs = null;
public DBconn(){
try{
Class.forName(DBDriver);
}
catch(java.lang.ClassNotFoundException e){
System.err.println("加载驱动失败:" + e.getMessage());
}
}
public ResultSet executeQuery(String sql){
rs = null;
try{
conn = DriverManager.getConnection(ConnStr,User,Password);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.println("连接数据库失败:"+ex.getMessage());
}
return rs;
}
}

论坛徽章:
0
5 [报告]
发表于 2004-10-06 18:38 |只看该作者

求救:连续执行sql,什么时候释放数据库连接?



  1. public class BatchUpdate{
  2.         public static void main(String[] args){
  3.                
  4.                 Connection conn = DriverManager.getConnection("","","");
  5.                 Statement stmt = conn.createStatement();
  6.                 conn.setAutocommit(false);
  7.                 stmt.addBatch("SQL");
  8.                 stmt.addBatch("SQL");
  9.                 stmt.executeBatch();
  10.                 conn.commit();
  11.                 conn.setAutoCommit(true);
  12.                
  13.         }
  14. }
复制代码

我给你这个只是片段,你组合到一起吧.有空看看这个
http://www.javaresearch.org/arti ... 08&thread=11522你想自己写一写,有空我也写一个咱们在讨论讨论.
最好要让对象和方法各尽其责,不要把所有的东西都写到一个方法里.看看连接池的用法,最好从连接池里去连接.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP