index.jsp:
<%@ page language="java" import="java.sql.*" import="java.util.*"
pageEncoding="GBK"%>
<jsp:useBean id="con" class="com.pkh.dao.UserDao" scope="page"></jsp:useBean>
<html>
<head>
<title>通过JDBC连接SQL Server数据库</title>
</head>
<body>
<%
if (con.Connection()) {
out.println("数据库连接成功!");
} else {
out.println("数据库连接失败!");
}
%>
<br>
<%
ResultSet Rs= con.selectStatic("select * from tb_ClassList");
%>
<%
for (int i = 0; i < 2; i++) {
Rs.next();
%>
<table>
<tr>
<td>
<div align="left" class="STYLE1"><%=Rs.getString("CID")%></div> </td>
<td>
<div align="left" class="STYLE1"><%=Rs.getString("CName")%></div> </td>
<td>
<div align="left" class="STYLE1"><%=Rs.getString("CStartDate")%></div> </td>
<td>
<div align="left" class="STYLE1"><%=Rs.getString("CPeriod")%></div> </td>
<td>
<div align="left" class="STYLE1"><%=Rs.getString("CType")%></div> </td>
</tr>
</table>
<%
}
%>
</body>
</html>
UserDao.java:
package com.pkh.dao;
import java.sql.*;
public class UserDao {
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_database04";
String username="Ming"; 
String password="1536248654";  
    private Connection con = null;
    private Statement stmt = null;
    private ResultSet rs = null;
    public UserDao() {  //通过构造方法加载数据库驱动
        try {
         Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
        } catch (Exception ex) {
            System.out.println("数据库加载失败");
        }
    }    public boolean Connection() {        //创建数据库连接
        try {
            con = DriverManager.getConnection(url, username, password);        } catch (SQLException e) {
            System.out.println(e.getMessage());
            System.out.println("creatConnectionError!");
        }
        return true;
    }
    //对数据库的查询操作
    public ResultSet selectStatic(String sql) throws SQLException {
         ResultSet rs=null;
        if (con == null) {
            Connection();
        }
        try {
        stmt = con.createStatement();
        rs = stmt.executeQuery(sql);
         } catch (SQLException e) {
                     e.printStackTrace();
            }
        return rs;
    }
    //更新数据库
    public boolean executeUpdate(String sql) {
        if (con == null) {
            Connection();
        }
        try {
            stmt = con.createStatement();
            int iCount = stmt.executeUpdate(sql);
            System.out.println("操作成功,所影响的记录数为" + String.valueOf(iCount));
        } catch (SQLException e) {
            System.out.println(e.getMessage());
            return false;
        }
        closeConnection();
        return true;
    }
    //关闭数据库的操作
    public void closeConnection() {
       if (con != null && stmt != null && rs != null) {
            try {
                rs.close();
                stmt.close();
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
                System.out.println("Failed to close connection!");
            } finally {
                con = null;
            }
        }
    }
}
CharacterEncodingFilter.java:
package com.pkh.charset;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class CharacterEncodingFilter implements Filter{    protected String encoding = null;
    protected FilterConfig filterConfig = null;    public void init(FilterConfig filterConfig) throws ServletException {
        this.filterConfig = filterConfig;
        this.encoding = filterConfig.getInitParameter("GBK");
    }    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        if (encoding != null) {
            request.setCharacterEncoding(encoding);
            response.setContentType("text/html; charset="+encoding);
        }
        chain.doFilter(request, response);
    }
    public void destroy() {
        this.encoding = null;
        this.filterConfig = null;
    }
}
错误信息:
[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
creatConnectionError!
[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
creatConnectionError!
2011-12-19 20:37:39 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at com.pkh.dao.UserDao.selectStatic(UserDao.java:44)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:83)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.pkh.charset.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:32)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
求高人解答了= =我看得头都大了还是弄不出

解决方案 »

  1.   

    空指针错误
    在jsp里没有con.Connection的包含和声明,引用,就直接开始用了
    我也是新手 答错莫怪
      

  2.   

     //对数据库的查询操作
      public ResultSet selectStatic(String sql) throws SQLException {
      ResultSet rs=null;
      if (con == null) {
      Connection();
      }
      try {
      stmt = con.createStatement();
      rs = stmt.executeQuery(sql);
      } catch (SQLException e) {
      e.printStackTrace();
      }
      return rs;
      }
    你看看你的异常处理 又有try 又有throws   你看看 吧
      

  3.   

      你确定你的连接没有出错?
     你的判断是 不管有没有异常 你都是连接成功。先保证连接对不对 
    Connection 你这个方法明显有问题。  连接失败 没看到你有return false。
      

  4.   

    连接应该没问题吧···在该数据库的用户建立了Ming这个用户密码1536248654,
    提示老是说这个错误: stmt = con.createStatement();,没连接成功不知道为啥那= =