问题描述
这是JAVA的类的代码:package sqlpackage;import java.sql.*;public class getNewsId {public long getId() {Connection con = null;PreparedStatement pStatement = null;String strSql = "select myseq.nextval from dual";ResultSet res = null;long id = 0;try {con = oracle.getCon();pStatement = con.prepareStatement(strSql);res = pStatement.executeQuery();while (res.next()) {id = res.getLong(1);}} catch (SQLException e) {e.printStackTrace();} finally {oracle.closeRes(res);oracle.closeStatement(pStatement);oracle.closeCon(con);}return id;}}然后我在JSP页面是这样做的:<%@ page import = "sqlpackage.*" %><%getNewsId getnewid = new getNewsId();long newId = getnewid.getId();out.print(newId);%>发送到Tomcat去调试的时候,提示出错信息如下:java.lang.NullPointerExceptionsqlpackage.getNewsId.getId(getNewsId.java:15)上面的内容,我看了一下,是在第15行的这一句:pStatement = con.prepareStatement(strSql);请问一下各位老师是什么问题?因为我直接调试这个类,是可以获取ID,并向数据库中写记录的,现在头疼的就是,在JSP文件里调用数据库查询、更新、删除、插入几个类(自己写的)都是这种问题,所以觉得肯定什么地方没弄对,GOOGLE了一上午也没找到解决办法。 问题补充:liguangwen 写道
解决方案
引用正常编译通过,内容如下: oracle.jdbc.driver.T4CConnection@705b40 你用main执行可以,所有有jar包,你在tomcat中用在lib下面放了oracle 的驱动jar包了吗?
解决方案二:
看看这个方法有没有异常public static Connection getCon() { Connection con = null; try { Class.forName(sqlJar); con = DriverManager.getConnection(sqlUrl,sqlUser,sqlPass); } catch (Exception e) { e.printStackTrace(); } return con; } 打一下获取到的con看看,System.out.println(con); 或者加断点debug
解决方案三:
到底是那句报的错呢?那个为null,然后把获得null的方法给或者对象那段代码贴出来,这样好查看问题
解决方案四:
从异常来看,未获得到数据库连接也就是说con = oracle.getCon();这句话获取的con是空,请检查oracle.getCon();方法能否获得数据库连接。
解决方案五:
引用con = oracle.getCon(); 这个没有获取到con还 NULL 所以就报错了
解决方案六:
pStatement = con.prepareStatement(strSql); 如果15行是这句的话说明 con 为nullwhile (res.next()) { 如果15行是这句的话 res为null