做了个简单的jsp使用javabean连接mysql数据库然后显示出里面的数据的小程序
jsp页面如下
<%@ page language="java" contentType="text/html; charset=gb2312"%><%@ page import="java.sql.*" %><jsp:useBean id="connBean" scope="page" class="cc.conn"/><html><head><title>使用bean连接mysql数据库</title></head><body bgcolor="#FFCCCC"><div align="center"><table width="60%" border="1"><tr><td width="50%" bgcolor="#CCCCFF"><div align="center"><font color="#FF0033"><b>学号</b></font></div></td><td width="25%" bgcolor="#CCCCFF"><div align="center"><font color="#FF0033"><b>姓名</b></font></div></td><td width="25%" bgcolor="#CCCCFF"><div align="center"><font color="#FF0033"><b>学分</b></font></div></td></tr><% ResultSet rs=connBean.executeQuery("select * from student");while(rs.next() ){ %> <tr> <td width="50%"> <div align="center"><%=rs.getString(1) %></div></td><td width="25%"> <div align="center"><%=rs.getString(2) %></div></td><td width="25%"> <div align="center"><%=rs.getString(3) %></div></td></tr><%}rs.close(); %> </table></body></html>
连接数据库的javabean代码如下:
package cc;import java.sql.*;public class conn { String dbUrl="jdbc:mysql//:localhost/test"; String dbUser="root"; String dbPassword="123"; Connection connect=null; ResultSet rs=null; public conn(){ try{ Class.forName("org.gjt.mm.mysql.Driver"); } catch(java.lang.ClassNotFoundException e){ System.err.println(e.getMessage()); } } public ResultSet executeQuery(String sql){ try{ connect=DriverManager.getConnection(dbUrl,dbUser,dbPassword); Statement stm=connect.createStatement(); rs=stm.executeQuery(sql); }catch(SQLException ex){ System.err.println(ex.getMessage()); } return rs; }}
运行提示org.apache.jasper.JasperException: Exception in JSP: /connectdatabase.jsp:24
是NullPointerException的错误,我看了下应该是读了rs出现空值,但是在mysql里我用select * from student可以显示出数据啊,大家看看怎么修改,谢谢大家!
------解决方法--------------------------------------------------------
看一下 connect 是不是为null
------解决方法--------------------------------------------------------
你还是在
connect=DriverManager.getConnection(dbUrl,dbUser,dbPassword);
System.out.prinltn("是否为空:"+connect);//这个里还是调试下把. 不要想当然.
Statement stm=connect.createStatement();
------解决方法--------------------------------------------------------
jdbc:mysql//:localhost/test这里你的url的port呢默认是3306
jdbc:mysql//:localhost:3306/test如果改变了的话用你改变后的端口
在说你都使用了System.err.println(e.getMessage());
看下控制台错误很明显的
------解决方法--------------------------------------------------------
import java.sql.*;在有这里是你import的类 就算是填写正确了 也没有数据库驱动类的加载
我对这句话纠正下:)很久没有用类直接连数据库了 用框架用的迷糊了 这里数据库驱动类是不需要import的 只是经常做测试import下,不好意思哈哈。带类的全路径的是不用import抱歉抱歉嘿嘿
------解决方法--------------------------------------------------------
看数据库连接是不是null,如果不是空再找别的原因
这种问题baidu一下就搞定了,为什么每天都有n个人问这个问题呢
------解决方法--------------------------------------------------------
url ="jdbc:mysql://localhost:3306/XXXXX?
URL用的是这个啦`
------解决方法--------------------------------------------------------