如何处理连接数据库JavaBean的错误信息

原创 2002年06月12日 15:58:00

    在进行Java数据库开发的时候,我们通常将对数据库的操作封装在JavaBean中。这样在页面中的数据处理时我们就不用将这些语句都放置在try-catch语句了。但是如何返回详细的错误信息呢?

    在实际操作中,我采用了这样的办法--定义两个私有变量int countInt 和 String strDBError 记录错误编码和错误信息。演示代码如下:

package DB;

/**
 * Title:        JavaBean of DataBase
 * Copyright:    Copyright (c) 2002
 * Company:      weide
 * @author   weidegong
 * @version 1.0
 */
import java.sql.*;
import java.util.*;

public class dataConn {

  private Connection conn = null;
  private Statement drpStmt = null;
  private ResultSet drpRst = null;
  private int countInt = 0;//0,默认情况;-1,表示发生数据库操作错误;-2,java.lang.Exception;其他编码.....
  private String strDBError="";//错误信息
  boolean autoCommit;

  public dataConn() {
  try{
 //jdbc-odbc
 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 conn=DriverManager.getConnection("jdbc:odbc:sqlserver","sa","706adm607");

 drpStmt = conn.createStatement();
  }
  catch(SQLException sqle){
     countInt=-1;
  strDBError=sqle.getMessage();
  }
  catch(java.lang.Exception e){
      countInt=-2;
   strDBError=e.getMessage();
  }
  }

//-------------------------------------------------------------------

public int getErrorCode(){

   return countInt;

}

//-------------------------------------------------------------------

 

//-------------------------------------------------------------------

public String getErrorInfo(){

   return strDBError;

}

//-------------------------------------------------------------------

 

//-------------------------------------------------------------------
  public ResultSet exeQuery(String queryString){
    countInt=0;//初始化为0
    strDBError="";//初始化错误信息
    try{
     drpRst = drpStmt.executeQuery(queryString);
     countInt=1;
    }catch(SQLException sqly){
      countInt=-1;
      strDBError+="Error occur while useing dataConn.exeQuery(queryString)!<p>The queryString is <p>" + queryString + "<p>The Error Information from DBMS:<p>"+sqly.getMessage();
    }catch(java.lang.Exception y){
      countInt=-2;
      strDBError+="<p>java.lang.Exception:"+y.getMessage();
    }
    return drpRst;
  }
//-------------------------------------------------------------------

 

//-------------------------------------------------------------------
  public int exeUpdate(String updateString){
    countInt=0;//初始化为0
 strDBError="";
    try{
      countInt = drpStmt.executeUpdate(updateString);
    }catch(SQLException sqlz){
      countInt=-1;//返回-1,表示发生错误
      strDBError="Error occur while using dataConn.exeUpdate()!The SQL is:<p>" + updateString + "<p>来自数据库的出错信息为:<P>" + sqlz.getMessage();
    }
     return countInt;
   }
//--------------------------------------------------------------------


  //-------------------------------------------------------
  //获取指定SQL查询语句执行后返回的记录数
  //避免在strSQL中包含“order  by”语句,如果有则除去,否则会出错。
  //去掉“order  by”子句对于获取总记录数没有任何影响。
  public int getRowCount(String queryString){
  countInt=0;
  strDBError="";
  ResultSet rs;
  int nRowCount=0;
    try{
      rs=drpStmt.executeQuery("select count(*) from (" + queryString + ") as viewTempQueryString" );
      while(rs.next()) nRowCount=rs.getInt(1);
    }
    catch(SQLException errGetRowCount){
      countInt=-1;//发生错误
      strDBError+="Error occur while useing dataConn.getRowCount("+queryString+")! 请与管理员联系。<p>从数据库返回的错误信息为:" + errGetRowCount.getMessage();
    }catch(java.lang.Exception errOther){
      countInt=-2;
      strDBError+="<p>其他错误:" + errOther.getMessage();
    }
    return nRowCount;
  }
  //-----------------------------------------------------------

}//end of all

    定义了上述JavaBean,在JSP页面中的使用演示如下:

Test.jsp源代码-----------------

<jsp:useBean id="conDB" scope="session" class="DB.dataConn" />

<%
  String strSQL="select * from table";
  ResultSet rs=conDB.exeQuery(strSQL);
  if(conDB.getErrorCode()<0){
    out.println("发生错误:"+conDB.getErrorInfo());
    out.close();
  }
%>

 

使用javabean实现用户登录

关于使用javabean实现用户登录初探
  • u011526599
  • u011526599
  • 2016年05月22日 23:06
  • 7790

解决JAVA通过JDBC连接Oracle数据库出现的问题

Java连接Oracle步骤: 1.注册加载驱动 驱动名:DRIVER="oracle.jdbc.driver.OracleDriver"; Class.forName("驱动类名");...
  • qq_27289001
  • qq_27289001
  • 2016年08月19日 12:58
  • 4007

python TorMySQL 异常处理不显示traceback的坑

python TorMySQL 异常处理不显示traceback的坑以及解决方案
  • xihuanqiqi
  • xihuanqiqi
  • 2017年01月09日 11:55
  • 1333

数据库ODBC错误信息含义查询

  • 2009年02月10日 17:14
  • 33KB
  • 下载

Datastage Routine示例---提取JOB错误信息录入到数据库

Datastage Routine示例——使用Routine提取JOB错误信息录入数据库 环境:Red Hat Linux AS 4 + Datastage EE 7.5.2 + Oracle 10...
  • wto3309
  • wto3309
  • 2012年10月09日 14:07
  • 2308

数据库ODBC错误信息

根据 X/Open 和 SQL Access Group SQL CAE 规范 (1992) 所进行的定义,SQLERROR 返回 SQLSTATE 值。SQLSTATE 值是包含五个字符的字符串。下...
  • goustzhu
  • goustzhu
  • 2012年08月31日 09:16
  • 5324

数据库错误信息SQLCODE SQLSTATE。

sqlcode sqlstate 说明  000 00000 SQL语句成功完成   01xxx SQL语句成功完成,但是有警告  +012 01545 未限定的列名被解释为一个有相互关系的引用...
  • u011702993
  • u011702993
  • 2014年06月23日 13:17
  • 1404

IIS7详细配置和不显示错误信息、数据库无法访问的解决

一、架设IIS7 1、打开控件面板->程序和功能,进入后点击左侧 的“打开或关闭WINDOWS功能”; 2、在对话框中选中"Internet信息服务",如果你的网站是ASP的(或.net/CGI)...
  • asanscape
  • asanscape
  • 2014年03月28日 10:25
  • 14429

如果命令返回&quot;无法打开连接&quot;的错误信息,则说明服务器端没有启动 SQL Server 服务,

  • 2010年11月29日 22:16
  • 39KB
  • 下载

关于网络连接错误信息678的解决方法

大家使用宽带上网的时候常常会出现一些错误提示信息,都是有编号的,比如678等等,每个编号都代表一个错误,今天就为大家解释下宽带上网的时候错误提示信息678到底是什么错误,怎么解决。 关于网络连接错误信...
  • wcgggesvv
  • wcgggesvv
  • 2013年05月31日 11:18
  • 530
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何处理连接数据库JavaBean的错误信息
举报原因:
原因补充:

(最多只允许输入30个字)