运行jsp之后总在红色的部分报错!高手指教啊!<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.sql.*"%>
<jsp:useBean id="SqlBean" scope="page" class="XSCJ_Bean.SQLServerConnBean" />
<HTML>
<HEAD>
<Meta http-equiv="Content-Type=" content="text/html;charset=gb2312">
<TITLE>使用JDBC直接访问SQL Server数据库</TITLE>
<Style type="text/css">
<!--
.style1{
color:#FF0000;
font-size:24px;
}
-->
</Style>
</HEAD>
<BODY>
<Div align="center">
<span class="style1">JDBC直接访问SQL Server数据库</span><BR><HR><BR>
</Div>
<Table border=2 bordercolor="#FFCCCC" align="center">
<tr bgcolor=CCCCCC align=center>
<td>学号</td>
<td>姓名</td>
<td>性别</td>
<td>出生日期</td>
<td>专业名</td>
<td>总学分</td>
<td>备注</td>
</tr>
<%
//查询XS表中XH,XM,ZY和ZXF字段的前10条记录
String sql="select top 2 * from XS";
//调用SqlBean中加载JDBC驱动的成员函数OpenConn()
SqlBean.OpenConn();
ResultSet rs=SqlBean.executeQuery(sql);
while(rs.next())
{
%>
<tr>
<td><%=rs.getString("XH")%></td>
<td><%=rs.getString("XM")%></td>
<td><%=rs.getString("XB")%></td>
<td><%=rs.getInt("CSRQ")%></td>
<td><%=rs.getString("ZY")%></td>
<td><%=rs.getString("ZXF")%></td>
<td><%=rs.getInt("BZ")%></td>
</tr>
<%
}
%>
<%
out.print("数据库操作成功,恭喜你");
rs.close();
SqlBean.closeStmt();
SqlBean.closeConn();
%>
</Table>
</BODY>
</HTML>
<%@ page language="java" import="java.sql.*"%>
<jsp:useBean id="SqlBean" scope="page" class="XSCJ_Bean.SQLServerConnBean" />
<HTML>
<HEAD>
<Meta http-equiv="Content-Type=" content="text/html;charset=gb2312">
<TITLE>使用JDBC直接访问SQL Server数据库</TITLE>
<Style type="text/css">
<!--
.style1{
color:#FF0000;
font-size:24px;
}
-->
</Style>
</HEAD>
<BODY>
<Div align="center">
<span class="style1">JDBC直接访问SQL Server数据库</span><BR><HR><BR>
</Div>
<Table border=2 bordercolor="#FFCCCC" align="center">
<tr bgcolor=CCCCCC align=center>
<td>学号</td>
<td>姓名</td>
<td>性别</td>
<td>出生日期</td>
<td>专业名</td>
<td>总学分</td>
<td>备注</td>
</tr>
<%
//查询XS表中XH,XM,ZY和ZXF字段的前10条记录
String sql="select top 2 * from XS";
//调用SqlBean中加载JDBC驱动的成员函数OpenConn()
SqlBean.OpenConn();
ResultSet rs=SqlBean.executeQuery(sql);
while(rs.next())
{
%>
<tr>
<td><%=rs.getString("XH")%></td>
<td><%=rs.getString("XM")%></td>
<td><%=rs.getString("XB")%></td>
<td><%=rs.getInt("CSRQ")%></td>
<td><%=rs.getString("ZY")%></td>
<td><%=rs.getString("ZXF")%></td>
<td><%=rs.getInt("BZ")%></td>
</tr>
<%
}
%>
<%
out.print("数据库操作成功,恭喜你");
rs.close();
SqlBean.closeStmt();
SqlBean.closeConn();
%>
</Table>
</BODY>
</HTML>
报什么错?把错误贴出来。
SqlBean.executeQuery(sql); 这里有问题
你就在XSCJ_Bean.SQLServerConnBean类里面的.executeQuery这个方法里面找原因啊
35: //调用SqlBean中加载JDBC驱动的成员函数OpenConn()
36: SqlBean.OpenConn();
37: ResultSet rs=SqlBean.executeQuery(sql);
38: while(rs.next())
39: {
40: %>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause java.lang.NullPointerException
XSCJ_Bean.SQLServerConnBean.executeQuery(SQLServerConnBean.java:30)
org.apache.jsp.SQLServer_jsp._jspService(SQLServer_jsp.java:105)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.29 logs.
import java.sql.*;
public class SQLServerConnBean
{
private Statement stmt=null;
private Connection conn = null;
ResultSet rs=null;
//构造函数
public SQLServerConnBean () { }
public void OpenConn()throws Exception
{
try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String url="jdbc:sqlserver://localhost:1433;DatabaseName=XSCJ";
String user="sa";
String password="admin123";
conn= DriverManager.getConnection(url,user,password);
}
catch(SQLException e)
{
System.err.println("Data.executeQuery: " +e.getMessage());
}
}
//执行查询类的SQL语句,有返回集
public ResultSet executeQuery(String sql)
{
rs=null;
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql);
}
catch(SQLException e)
{
System.err.println("Data.executeQuery: " + e.getMessage());
}
return rs;
}
//关闭对象
public void closeStmt()
{
try {
stmt.close();
}
catch(SQLException e)
{
System.err.println("Date.executeQuery: " + e.getMessage());
}
}
public void closeConn()
{
try
{
conn.close();
}
catch(SQLException e)
{
System.err.println("Data.executeQuery: " + e.getMessage());
}
}
}
import java.sql.*;
public class SQLServerConnBean
{
private Statement stmt=null;
private Connection conn = null;
ResultSet rs=null;
//构造函数
public SQLServerConnBean () { }
public void OpenConn()throws Exception
{
try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String url="jdbc:sqlserver://localhost:1433;DatabaseName=XSCJ";
String user="sa";
String password="admin123";
conn= DriverManager.getConnection(url,user,password);
}
catch(SQLException e)
{
System.err.println("Data.executeQuery: " +e.getMessage());
}
}
//执行查询类的SQL语句,有返回集
public ResultSet executeQuery(String sql)
{
rs=null;
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql);
}
catch(SQLException e)
{
System.err.println("Data.executeQuery: " + e.getMessage());
}
return rs;
}
//关闭对象
public void closeStmt()
{
try {
stmt.close();
}
catch(SQLException e)
{
System.err.println("Date.executeQuery: " + e.getMessage());
}
}
public void closeConn()
{
try
{
conn.close();
}
catch(SQLException e)
{
System.err.println("Data.executeQuery: " + e.getMessage());
}
}
}
XSCJ_Bean.SQLServerConnBean.executeQuery(SQLServerConnBean.java:30)
这是空指针异常
要在SQLServerConnBean类中找 SQLServerConnBean.java:30看看这里
try {
Class.forName(driver);
System.out.println("驱动成功!");
Connection connection = (Connection) DriverManager.getConnection(url,username,pass);
System.out.println(connection.toString()+" -- ");
} catch (ClassNotFoundException e) {
System.out.println("驱动失败!");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("数据库连接失败!!!");
e.printStackTrace();
}你可以这样测试一下,看打印出来什么东西?