jsp调用java的数据库_在JSP页面调用JAVA类里的数据库操作方法出错?

这是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页面是这样做的:

getNewsId getnewid = new getNewsId();

long newId = getnewid.getId();

out.print(newId);

%>

发送到Tomcat去调试的时候,提示出错信息如下:

java.lang.NullPointerException

sqlpackage.getNewsId.getId(getNewsId.java:15)

上面的内容,我看了一下,是在第15行的这一句:pStatement = con.prepareStatement(strSql);

请问一下各位老师是什么问题?因为我直接调试这个类,是可以获取ID,并向数据库中写记录的,现在头疼的就是,在JSP文件里调用数据库查询、更新、删除、插入几个类(自己写的)都是这种问题,所以觉得肯定什么地方没弄对,GOOGLE了一上午也没找到解决办法。

问题补充:

liguangwen 写道

pStatement = con.prepareStatement(strSql);

如果15行是这句的话说明 con 为null

while (res.next()) {

如果15行是这句的话  res为null

46824d74e28d56e0d70bd4ffe8816f2d.gif

汗,关键是怎么回事啊?如果为空的话为什么我单独建个类,也按照同样的声明该类的代码,却可以在终端调试出来?

问题补充:这是建立管理和关闭连接的类

package sqlpackage;

import java.sql.*;

public class oracle {

private static final String sqlJar = "oracle.jdbc.OracleDriver";

private static final String sqlUrl = "jdbc:oracle:thin:@192.168.1.153:1521:orcl";

private static final String sqlUser = "sys as SYSDBA";

private static final String sqlPass = "2012";

/**

* 建立连接

* @return

* Connection

*/

public static Connection getCon() {

Connection con = null;

try {

Class.forName(sqlJar);

con = DriverManager.getConnection(sqlUrl,sqlUser,sqlPass);

} catch (Exception e) {

e.printStackTrace();

}

return con;

}

问题补充:

yanq12 写道

引用

con = oracle.getCon();

这个没有获取到con还 NULL 所以就报错了

我把oracle类的方法贴出来了,怎么会没获取到呢?

问题补充:

kendylxy 写道

从异常来看,未获得到数据库连接也就是说con = oracle.getCon();这句话获取的con是空,请检查oracle.getCon();方法能否获得数据库连接。

我已经把相关的方法贴出来了,麻烦帮我看看。

问题补充:

kendylxy 写道

看看这个方法有没有异常

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

我在oracle建了一个main方法,然后填写如下代码:

public static void main(String args[]) {

Connection con = null;

con = oracle.getCon();

}

正常编译通过,内容如下:

oracle.jdbc.driver.T4CConnection@705b40

麻烦再帮忙看一下!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值