Class.forName(sDBDriver).newInstance(); 这里应该没有问题,
return rs;这里有问题吧,好象return不能放在try{}catch{}里面,可以放在 finally{} 里面,当然可以放在外面的其他地方!试试!

解决方案 »

  1.   

    这是我写的一个连接sql的bean绝对可以用,你只用更改你的数据库名和登陆名密码就ok
    package bbsBean;import java.sql.*;
    import java.net.*;
    import java.io.*;
    import java.util.*;public class QueryData implements Serializable 
    {
    //定义变量
    static Connection conn=null;
    Statement stmt=null;
    ResultSet rs=null;
    public QueryData(){}
    //建立连接
    public static void getConnection(){
    try
    {
    //注册驱动
     Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
     /*建立连接*/
     conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=;DatabaseName=bbs"); }
    catch (ClassNotFoundException e)
    {
    e.printStackTrace();
    }
    catch (SQLException e)
    {
    e.printStackTrace();
    }
    }

    //关闭数据库
    public void closeConnection(){
    try
    {
    if (rs!=null)
    {
    rs.close();
    }
    if (stmt!=null)
    {
    stmt.close();
    }
    if (conn!=null)
    {
    conn.close();
    }
    }
    catch (SQLException e)
    {
    e.printStackTrace();
    }
    rs=null;
    stmt=null;
    conn=null;
    } //returnResultQuery该方法返回一个得到的记录集,参数为sql语句
    public ResultSet returnResultQuery(String sql){
    rs=null;
    try
    {
    if (conn==null)
    {
    getConnection();
    }
    if(conn!=null){
    stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    //执行数据库的查询
    rs=stmt.executeQuery(sql);
    }
    }
    catch (SQLException e)
    {
    e.printStackTrace();
    }
    return rs;
    } //executeUpdate用来更新数据库
    //参数为sql语句,成功返回true,失败返回false;
    public boolean executeUpdate(String sql){
    boolean bupdate=false;
    try
    {
    //判断是否连接
    if (conn==null)
    {
    getConnection();
    }
    if(conn!=null){
    stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    int rowCount=stmt.executeUpdate(sql);
    if (rowCount!=0)
    {
    bupdate=true;
    }
    }
    }
    catch (SQLException e)
    {
    e.printStackTrace();
    }
    return bupdate;

    }
    //toChinese方法用于将一个字符串进行中文处理
    public static String toChinese(String strValue){
    try
    {
    if (strValue==null)
    {
    return null;
    }
    else{
    strValue=new String(strValue.getBytes("ISO8856_1"),"GBK");
    return strValue;
    }
    }
    catch (Exception e)
    {
    e.printStackTrace();
    return null;
    }
    }
    //测试代码
    /* public static void main(String arge[]){
    ResultSet r=null;
    QueryData q=new QueryData();
    r=q.returnResultQuery("select * from liouyan");
    try
    {
    while (r.next())
    {
    System.out.println(r.getString(2));
    }
    }
    catch (SQLException e)
    {
    System.out.println("错误");
    }

    }
    */
    }
      

  2.   

    ExplorerCSharp(小文):我试过你说的去掉return rs;编译时仍然显示一下错误:
    DB.java:15: unreported exception java.lang.InstantiationException; must be caugh
    t or declared to be thrown
                            Class.forName(sDBDriver).newInstance();
                                                                ^
    1 error去掉上面的.newInstance();就可以通过编译,但是链接后网页无法显示500错误,不知道去掉.newInstance();是不是会影响jdbc链接
    loveyousomuch(★爱神厄洛斯★) :谢谢热情出手,感动的雪地里打滚三天三夜^_^
      

  3.   

    参考了一下微软的帮助在Connecting Through the JDBC Driver Manager 主题下发现如下例子:
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
    Connection conn = DriverManager.getConnection 
      ("jdbc:microsoft:sqlserver://server1:1433;User=test;Password=secret"); 
    还有楼上 loveyousomuch(★爱神厄洛斯★) 兄给的为什么都没有csdn以前给的.newInstance();呢?是不是newInstance是可有可无的?
    希望有人能够回答这个问题
      

  4.   

    已经试过了
    loveyousomuch(★爱神厄洛斯★) 的bean和我的bean在链接后都是同一个错误,看来我的bean也算是写对了^_^HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    root cause java.lang.NullPointerException
    org.apache.jsp.search_jsp._jspService(search_jsp.java:69)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    郁闷中...
    谁能给个答案???
    菜鸟深夜期待中