原文件是这样的:
import java.sql.*;
public class UserBean{
private String user="";
private String password="";
private int id;
private String name;
private String city;
private Date lastvisite;
private int times;
public String getUser()
{
  return user;
}
public void setUser(String value)

  user=value;
}
public String getPassword()
{
  return password;
}
public void setPassword(String value)
{
  password=value;
}
public int getId()
{
  return id;
}
public String getName()
{
  return name;
}
public String getCity()
{
  return city;
}
public Date getLastvisite()
{
  return lastvisite;
}
public int getTimes()
{
  return times;
}
public boolean sel_user()
{
  Connection conn;
  CallableStatement stmt;
  ResultSet set;
  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
  String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=myshop";
  String user_1="sa";
  String password_1="";
  conn=DriverManager.getConnection(url,user_1,password_1); 
  String strSQL="{call sel_user(?,?)}";
  stmt=conn.prepareCall(strSQL);
  stmt.setString(1,user);
  stmt.setString(2,password);
  set=stmt.executeQuery();
  if (set.next())
  {
    id=set.getInt("id");
    name=set.getString("姓名");
    city=set.getString("地址");
    lastvisite=set.getDate("上次登陆");
    times=set.getInt("登陆次数");
    return true;
  }
  else
  {
    return false;
  }
}}

解决方案 »

  1.   

    错误报告:
    --------------------Configuration: JDK version 1.5.0_03 <Default>--------------------
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:51: 未报告的异常 java.lang.ClassNotFoundException;必须对其进行捕捉或声明以便抛出
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
                   ^
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:51: 未报告的异常 java.lang.InstantiationException;必须对其进行捕捉或声明以便抛出
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
                                                                               ^
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:55: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛出
      conn=DriverManager.getConnection(url,user_1,password_1); 
                                      ^
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:57: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛出
      stmt=conn.prepareCall(strSQL);
                           ^
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:58: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛出
      stmt.setString(1,user);
                    ^
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:59: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛出
      stmt.setString(2,password);
                    ^
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:60: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛出
      set=stmt.executeQuery();
                           ^
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:61: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛出
      if (set.next())
                  ^
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:63: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛出
        id=set.getInt("id");
                     ^
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:64: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛出
        name=set.getString("姓名");
                          ^
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:65: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛出
        city=set.getString("地址");
                          ^
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:66: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛出
        lastvisite=set.getDate("上次登陆");
                              ^
    C:\Program Files\Xinox Software\JCreator Pro\MyProjects\UserBean.java:67: 未报告的异常 java.sql.SQLException;必须对其进行捕捉或声明以便抛出
        times=set.getInt("登陆次数");
                        ^
    13 错误Process completed.------------------------------------------------------------------------------------------
    我测试过一个差不多的文件,在TOMCAT中没有问题的,为什么会在生成CLASS文件的时候出问题呢,那位大哥可以帮帮忙啊!!!
      

  2.   

    你应该把数据库连接的那段包含在try,catch,finally语句里
      

  3.   

    涉及数据库操作的都要进行TRY-CATCH处理。
      

  4.   

    bobfallen(逐流)  / lunch(趣多多)   你好。可不可以告诉我,具体应该怎么做。有例子最好了,或者再我的代码中修改以下,感激不尽!!
      

  5.   

    你装的是不是ms的JDBC_SQLServer驱动啊?
    你把JDBC_SQLServer安装目录下lib目录中的三个jar文件导入库中就可以找到驱动了
      

  6.   

    可能是引用包的问题,楼主有相应的*.jar包吗
      

  7.   

    public boolean sel_user()
    {
    try {
      Connection conn;
      CallableStatement stmt;
      ResultSet set;
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
      String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=myshop";
      String user_1="sa";
      String password_1="";
      conn=DriverManager.getConnection(url,user_1,password_1); 
      String strSQL="{call sel_user(?,?)}";
      stmt=conn.prepareCall(strSQL);
      stmt.setString(1,user);
      stmt.setString(2,password);
      set=stmt.executeQuery();
      if (set.next())
      {
    id=set.getInt("id");
    name=set.getString("姓名");
    city=set.getString("地址");
    lastvisite=set.getDate("上次登陆");
    times=set.getInt("登陆次数");
    return true;
      }
      else
      {
    return false;
      }
      }catch(Exception e) {
    e.printStackTrace();
    return false;      //一定要有返回值
      }
    }
      

  8.   

    try catch不会不知道吧?异常要么throw出去,要么catch它,你不做任何处理自然编译部通过了
      

  9.   

    总结一下:
    1、没有对会抛出异常的代码已经处理,要么try...catch..要么在方法声明上throws XXException{...}
    2、确定import进了MS SQL SERVER的JDBC包,并且所有的包已经在classpath中了
      

  10.   

    public boolean sel_user throws SQLException ()//---------added
    {
      Connection conn = null ;     //modified,for initial
      CallableStatement stmt = null ;//modified,for initial
      ResultSet set = null ;        //modified,for initial
      String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=myshop";
      String user_1="sa";
      String password_1="";
    try {
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
      conn=DriverManager.getConnection(url,user_1,password_1); 
      String strSQL="{call sel_user(?,?)}";
      stmt=conn.prepareCall(strSQL);
      stmt.setString(1,user);
      stmt.setString(2,password);
      set=stmt.executeQuery();
      if (set.next())
      {
        id=set.getInt("id");
        name=set.getString("姓名");
        city=set.getString("地址");
        lastvisite=set.getDate("上次登陆");
        times=set.getInt("登陆次数");
        return true;
      }
      else
      {
        return false;
      }
     } catch (Exception e){//----added
       e.printStackTrace();
       throw e;
     } finally { //close DataBase Connection
        closeConnection(conn,stmt,set);
     }//--added
     return true;
    }
    //added
    private static synchronized void closeConnection(
    Connection conn,
    Statement statement,
    ResultSet rSet)  throws SQLException{
    if (rSet != null) {
    try {
    rSet.close();
    rSet = null;
    } catch (SQLException e) {
    throw e;
    }
    }
    if (statement != null) {
    try {
    statement.close();
    statement = null;
    } catch (SQLException e) {
    throw e;
    }
    }
    if (conn != null) {
    try {
    conn.close();
    conn = null;
    } catch (SQLException e) {
    throw e;
    }
    }
    }
      

  11.   

    在对数据库操作时必须抛出异常try,catch或者throwing