我有个query.jsp页面还有个OpenDB.java类,OpenDB.java代码如下:
package com.netshop;
import java.sql.*;
public class OpenDB
{  String userName="root";
String userPassword="111111";
private String driverName="org.gjt.mm.mysql.driver";
private String url="jdbc:mysql://localhost/netshop?user="+userName+"&password="+userPassword;
Connection dbConn;

public OpenDB()
{
}

public Connection getConnection()
{
  try
{
     Class.forName(driverName);
dbConn=DriverManager.getConnection(url);
}
catch(Exception ex)
{
System.out.println(ex.toString());
              dbConn=null;
}
return dbConn;
}
}
query.jsp代码如下:
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %><%@page import="com.netshop.*"%>
<jsp:useBean scope="page" id="at" class="com.netshop.OpenDB"/><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<%Connection conn=at.getConnection();
Statement stmt=conn.createStatement();%>
<%String sql="select * from attention";%><%ResultSet rs=stmt.executeQuery(sql);%>
<%if(rs.next()){%>
java bean name is :
<%=rs.getLong("tag")%>
<%}%></body>
</html>
出错在Statement stmt=conn.createStatement();%>这行,ROOT cause提示是java.lang.NullPointerException,顺便说下我mysql数据库表里有记录,请问这是怎么回事? 

解决方案 »

  1.   

    Statement stmt=conn.createStatement();既然是这里出错,那很明显就是conn为null嘛!
     driverName="org.gjt.mm.mysql.driver; 我没看到过你这样的写法,改成:com.mysql.jdbc.Driver这个试下,说不定就可以了!
      

  2.   

    我就感到奇怪,如果我在query.jsp里直接写加载驱动,得到连接以及操作数据库的那些语句,可以运行,但将获取连接的语句打包后就出现这种情况!这究竟是为什么呢
      

  3.   

      检测jdbc驱动包添加了没?
      

  4.   

    添加了,不然我在query.jsp上写连接操作语句就该提错了,我遇到到得是3楼说的
      

  5.   

    dbConn=DriverManager.getConnection(url);
    改成:
    dbConn=DriverManager.getConnection(url,userName,userPassword);private String url="jdbc:mysql://localhost/netshop?user="+userName+"&password="+userPassword;
    改成:
    private String url="jdbc:mysql://localhost:3306/netshop
    去掉用户名和密码,你没有加3306端口,这个一定得加上!
    然后在试一下吧!
      

  6.   

    什么jar?数据库驱动?myqsl-connector-java-3.1.14-bin.jar
      

  7.   

    用这么低的版本!我用的是:mysql-connector-java-5.0.8-bin.jar
    dbConn=DriverManager.getConnection(url,userName,userPassword);
    private String url="jdbc:mysql://localhost:3306/netshop
    我都是这样用的,没任何问题!建议你换个高版本的看看!
      

  8.   

    我刚再去试了下在query.jsp页面上用<%%>写连接代码,结果能得到数据库的数据,但换成调用类他妈还是原来的错误哦这个,我试试
      

  9.   

    建议先到一个java project里面去试试数据库的连接问题,方便调试。
    参照http://blog.csdn.net/wkupaochuan/article/details/7448321
      

  10.   

    Statement stmt=conn.createStatement();
    你在这一句的前面打印conn看看,输出的是什么?建议:在OpenDB这个类中的dbConn先初始化!
      

  11.   

    刚重启下了tomcat,问题好像解决了,感觉是版本问题,不过版本能有什么大的区别,竟然调用类都不行
      

  12.   

    OK,问题解决就行!但是在没换jar包前,有没重启tomcat
      

  13.   

    不过,最好还是不要在jsp页面写java代码,这种写法不大好,而且看起来很乱,调试起来也不大方便。