jsp如何连接sql2005?高手看看我这样设置有没有问题?
1、在类中实现连接代码如下:
private static final String DRIVERCLASS = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; private static final String URL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=db_DrinkeryManage"; private static final String USERNAME = "sa"; private static final String PASSWORD = "123";
2、在SQL Server Configuration Manager中启用TCP/IP,并设置端口为1433
3、把sqljdbc.jar复制到Tomcat 5.5\common\lib中
运行结果出现错误:
description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause java.lang.NullPointerException
com.JDBConnection.executeQuery(JDBConnection.java:56)
org.apache.jsp.index_jsp._jspService(index_jsp.java:77)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

请问这是什么原因?之前这个程序我是用sql2000数据库没问题,现在改用sql2005怎么不行呢?
谢谢!!

解决方案 »

  1.   

    http://hi.baidu.com/kevin_wei/blog/item/7759111ef98e0acea7866907.html
      

  2.   

    这个贴我也看过,也设置过,但还是出现这样的问题。sql2005的连接的java程序我试过,没问题呀?怎么在jsp中就有问题?
      

  3.   

    配置里面的mssqlsever重启过了么?
      

  4.   

    把 sqlsp4 补丁打上!!
    再试试!!!
      

  5.   

    private static final String URL  "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=db_DrinkeryManage"; 把它该为 jdbc:sqlserver://localhost:1433;databasename=db_DrinkeryManage
    看看,如果这样成功的话就说明用127.0.0.1不能访问你的电脑,需要重新配置
      

  6.   

    sql2005需要打补丁吗?但是我做了一个java程序没问题哦?现在这个jsp就出现问题了
      

  7.   

    我看了你写的前面的一个常量值 好像是写了一个ConnectionManager类 来直连sql server 05  但是下面的sql server 05 jar包我是放在项目的 WebRoot/WEB-INF/lib 文件下的 然后在项目上 刷新下  
    你把jar包放在tomcat下 我值知道使用数据库连接池才会那么做的
      

  8.   

       你的SQL2005里用你的用户名密码可以登陆吗?,没有的话要设置为混合登录模式
        然后重启服务
      

  9.   

    lz是在什么情况下报这个错啊!你用的是直连还是dbcp的
    把代码帖出来!
    然后说说你在什么情况下报错!
    描述清楚!
      

  10.   

    我把连接类贴出来吧
    package com;
    import java.sql.*;public class JDBConnection {
        private final String dbDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //连接sql数据库的方法
        private final String url ="jdbc:sqlserver://localhost:1433;DatabaseName=db_database02";
        private final String userName = "sa";
        private final String password = "123";
        private Connection con = null;    public JDBConnection() {
            try {
                Class.forName(dbDriver).newInstance(); //加载数据库驱动
            } catch (Exception ex) {
                System.out.println("数据库加载失败");
            }
        }//创建数据库连接
        public boolean creatConnection() {
            try {
                con = DriverManager.getConnection(url, userName, password);
                con.setAutoCommit(true);        } catch (SQLException e) {
                System.out.println(e.getMessage());
                System.out.println("creatConnectionError!");
            }
            return true;
        }
       //对数据库的增加、修改和删除的操作
    //对数据库的查询操作
        public ResultSet executeQuery(String sql) {
            ResultSet rs;
            try {
                if (con == null) {
                    creatConnection();
                }
                Statement stmt = con.createStatement();
                try {
                    rs = stmt.executeQuery(sql);
                } catch (SQLException e) {
                    System.out.println(e.getMessage());
                    return null;
                }
            } catch (SQLException e) {
                System.out.println(e.getMessage());
                System.out.println("executeQueryError!");
                return null;
            }
            return rs;
        }//关闭数据库的操作
        public void closeConnection() {
            if (con != null) {
                try {
                    con.close();
                } catch (SQLException e) {
                    e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
                    System.out.println("Failed to close connection!");
                } finally {
                    con = null;
                }
            }
        }}
    看看到底有什么问题?
      

  11.   

    sqljdbc.jar添加到classpath中试试。
      

  12.   

    换这种连接试试:
    SQLServerDataSource ssds=new SQLServerDataSource();
    ssds.setServerName="localhost";
    ssds.setUserName="sa";
    ssds.setPassword="sa";
    ssds.setPortnumber=1433;
    ssds.setDatabaseName="dbname";
    Connection conn=ssds.getConnection();