jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="GBK" import="java.sql.ResultSet"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<jsp:useBean id="news" scope="session" class="cn.com.ctsi.util.OracleUtil">
<jsp:setProperty name="news" property="*"/>
</jsp:useBean><html>
<head>
<title>newsQueryPage</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css">    </style></head>
<body>
<p align="center" class="STYLE1">信息</p>
<table align="center">
<tr>
<td><div align="center">编号</div></td>
<td><div align="center">标题</div></td>
<td><div align="center">内容</div></td>
<td><div align="center">时间</div></td>
<td><div align="center">作者</div></td>
</tr>

<%
String sql = "select * from news";
     ResultSet rs=news.query(sql);
     int tt=0;
     while(rs.next())
     {
     %>
     <tr>
     <td width="67" align="center">
     <%
     tt=Integer.parseInt(rs.getString("id"));
     out.print(tt);
      %>
      </td>
     <td width="113" align="center">
     <%
     out.print(rs.getString("newsTitle"));
      %>
      </td>
     <td width="214" align="center">
     <%
     out.print(rs.getString("newsContent"));
      %>
      </td>
     <td width="108" align="center">
     <%
     out.print(rs.getString("issueDate"));
      %>
      </td>
     <td width="88" align="center">
     <%
     out.print(rs.getString("author"));
      %>
      </td>
    
     </tr>
     <%
     }
       %>

</table>
</body>
</html>
java页面:
package cn.com.ctsi.util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class OracleUtil { private String drv = "oracle.jdbc.driver.OracleDriver"; private String url = "jdbc:oracle:thin:@localhost:1521:orcl"; private String usr = "system"; private String pwd = "111111"; private Connection conn = null; private Statement stm = null; private ResultSet rs = null; public boolean createConn() {
boolean b = false;
try {
Class.forName(drv).newInstance();
conn = DriverManager.getConnection(url, usr, pwd);
b = true;
} catch (SQLException e) {
} catch (ClassNotFoundException e) {
} catch (InstantiationException e) {
} catch (IllegalAccessException e) {
}
return b;
} public boolean update(String sql) {
boolean b = false;
try {
stm = conn.createStatement();
stm.execute(sql);
b = true;
} catch (Exception e) {
System.out.println(e.toString());
}
return b;
} public ResultSet query(String sql) {
try {
stm = conn.createStatement();
rs = stm.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}

public boolean next() {
boolean b = false;
try {
if(rs.next())b = true;
} catch (Exception e) {
}
return b;
}

public String getValue(String field) {
String value = null;
try {
if(rs!=null)value = rs.getString(field);
} catch (Exception e) {
}
return value;
} public void closeConn() {
try {
if (conn != null)
conn.close();
} catch (SQLException e) {
}
} public void closeStm() {
try {
if (stm != null)
stm.close();
} catch (SQLException e) {
}
} public void closeRs() {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
}
} public Connection getConn() {
return conn;
} public void setConn(Connection conn) {
this.conn = conn;
} public String getDrv() {
return drv;
} public void setDrv(String drv) {
this.drv = drv;
} public String getPwd() {
return pwd;
} public void setPwd(String pwd) {
this.pwd = pwd;
} public ResultSet getRs() {
return rs;
} public void setRs(ResultSet rs) {
this.rs = rs;
} public Statement getStm() {
return stm;
} public void setStm(Statement stm) {
this.stm = stm;
} public String getUrl() {
return url;
} public void setUrl(String url) {
this.url = url;
} public String getUsr() {
return usr;
} public void setUsr(String usr) {
this.usr = usr;
}
}报错:
java.lang.NullPointerException
at cn.com.ctsi.util.OracleUtil.query(OracleUtil.java:53)
at org.apache.jsp.newsQuery_jsp._jspService(newsQuery_jsp.java:92)
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:377)
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 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:852)
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.   

    at cn.com.ctsi.util.OracleUtil.query(OracleUtil.java:53)报错是指:oracleUtil.java中的stm = conn.createStatement();这句到底有什么问题吗?
      

  2.   

     conn 还是 null 吧 createConn方法还没有执行过。考虑放在静态语句块或者构造里吧
      

  3.   

                Class.forName(drv).newInstance();
                conn = DriverManager.getConnection(url, usr, pwd);
    这句话每执行,导致conn为空
    在下面的这么多catch里面加上e.printstacktrace()打印出异常就知道是连接数据库失败了。
        } catch (SQLException e) {
            } catch (ClassNotFoundException e) {
            } catch (InstantiationException e) {
            } catch (IllegalAccessException e) {
            }
      

  4.   

    在类中加入
    public OracleUtil(){
      createConn();
    //要判断是否连接成功
    }
      

  5.   

     写个空参构造 调用下 createConn()就行了,处理好关闭。
      

  6.   

    这问题不好回答,但是可以确定的是肯定是你定义的那几个字符串的变量出现了问题,看一看字符串有没有null的~应该很好解决的
      

  7.   

     你需要调用createConn创建连接对象才能操作数据库啊。 你还没调用这个方法 肯定是空指针啊。 
      

  8.   

    LZ大哥,你这是骗人帖啊,CreateConn()都没调用,他能不空指针么?    <td><div align="center">内容</div></td>
                    <td><div align="center">时间</div></td>
                    <td><div align="center">作者</div></td>
                </tr>
                    
                <%
                    String sql = "select * from news";
                    ResultSet rs=news.query(sql);//执行查询语句之前,你都不连数据库,能出来数据么?
                    int tt=0;
                    while(rs.next())
                    {
    调用CreateConn();啊~
    public boolean createConn() {