高手!这样连接数据库的javabean有没有错?

yinliangzhi 2004-09-28 11:42:13
连接数据库的javabean如下:

package quanxian_db;
import java.sql.*;

public class ConnOracle {
String sDBDiver="sun.jdbc.odbc.JdbcOdbcDriver";
Connection connect=null;
//Statement stmt;
ResultSet rs=null;

public ConnOracle(){
try{
Class.forName(sDBDiver);
}
catch(java.lang.ClassNotFoundException e){
System.err.println(e.getMessage());
}
}

public ResultSet executeQuery(String sql){

try{
connect=DriverManager.getConnection("jdbc:odbc:XinHaoFenxi","system","pass");
Statement stmt=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);

}

catch(SQLException ex){
System.err.println(ex.getMessage());
}
return rs;
}

public int executeUpdate(String sql){
int result=0;
try{
connect=DriverManager.getConnection("jdbc:odbc:XinHaoFenxi","system","pass");
Statement stmt=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
result=stmt.executeUpdate(sql);
connect.commit();//新增加的语句
}

catch(SQLException ex){
// connect.rollback();//新增加的语句
System.err.println(ex.getMessage());
}
return result;
}
}


调用javabean的jsp如下:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page language="java" import="java.sql.*" %>

<jsp:useBean id="connDb" scope="page" class="quanxian_db.ConnOracle"/>

<%
String sql ="select * from qx";
connDb.executeQuery(sql);
……
%>

后来既没有关闭连接,又没有关闭数据集.请问在哪关闭连接?书上的程序也没有关闭.会不会报错?

如果有错,正确的写法应该是怎样的?
...全文
162 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinliangzhi 2004-10-08
  • 打赏
  • 举报
回复
再来看看.欢迎高手发表意见.
angelheart 2004-09-28
  • 打赏
  • 举报
回复
这个是不用连接池的写法
我建议不在在构造函数里面加载驱动,写一个加载数据库驱动的方法,然后在executeQuery等操作里面判断connect,如果为NULL,则再去调用加载数据库驱动的方法
hbuzhang 2004-09-28
  • 打赏
  • 举报
回复
你只要在你的bean中写上下面的函数
public void destroy() {
try {
stmt.close();
connect.close();
}
catch(Exception e) {
System.err.println("DBOperate.destroy():"+e.getMessage());
}
}
然后再jsp页面中写上:
connDb.destroy();
就可以了。这样就将数据库连接所占用的资源关闭掉了,你的程序没有关闭,虽然可能不会报错,但太浪费资源。
seanzhu2004 2004-09-28
  • 打赏
  • 举报
回复
在 return 语句之后关掉。
好象你的查询语句没有把返回值赋给一个ResultSet.
MARS.nEIL 2004-09-28
  • 打赏
  • 举报
回复
当你觉得不会用到的时候,就可以把它关闭掉啊,不关不会报错.

81,122

社区成员

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

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