关于毕业设计中JSP网上书店的数据库连接问题的提问!!!!!!!加三根鸡毛!!!!!!特特特急!!!!!
基础太差,就是没办法知道到底是哪儿出错了,请教高手,快来帮忙救命啊!
问题,无法连接数据库 具体问题,无法实现注册,管理员登陆等等,
代码是一著名网站书籍的源码,不过还是有问题,至少我的JDK环境没问题,tomcat配置没问题,JDBC我就不太清楚了,不过用的是SQL2000 server for jdbc,也进行了配置,比如lib文件下烤新的文件什么的.
具体网页显示错误如下
org.apache.jasper.JasperException: Exception in JSP: /adduser.jsp:22
19: DBSQLManager dbsm = new DBSQLManager();
20: String sql="INSERT INTO userpassword VALUES('"+userid+"','"+password+"','N','"+username+"','"+address+"','"+phone+"','"+email+"')";
21: dbsm.setSqlStr(sql);
22: dbsm.executeUpdate();///////就是这行有问题呀
23: dbsm.close();
24: %>
25: <br><a class="title">已经注册成功!请<a href="login.jsp">登录</a></a><br>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NullPointerException
bookshop.DBSQLManager.executeUpdate(DBSQLManager.java:56)
org.apache.jsp.adduser_jsp._jspService(adduser_jsp.java:114)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
然后我的数据库操作javabean文件DBSQLManager如下(一般出问题就是说这个javabean有问题,郁闷的不行了,小弟学JSP不久,考虑这个问题都快疯掉了!!!!!!)
package bookshop;
import java.sql.*;
import bookshop.*;
public class DBSQLManager{
protected Connection conn = null; //Connection对象
protected Statement stmt = null; //Statement对象
protected ResultSet rs = null; //记录结果集
protected String sqlStr; //SQL语句
public DBSQLManager() {
try
{
sqlStr = "";
DBConnectionManager dcm = new DBConnectionManager();
conn = dcm.getConnection();
stmt = conn.createStatement();
}
catch (Exception e) {
System.out.println(e);
}
}
public Statement getStmt() {
return stmt;
}
public Connection getConn() {
return conn;
}
public ResultSet getRs() {
return rs;
}
public void setSqlStr(String newSqlStr) {
this.sqlStr=newSqlStr;
}
public String getSqlStr() {
return sqlStr;
}
public void executeUpdate() throws Exception {
int rowCount = stmt.executeUpdate(sqlStr);///这行中的"int rowCount ="是我加上去的本来没有
}
public void executeQuery() throws Exception {
rs = stmt.executeQuery(sqlStr);
}
public void close() throws SQLException {
if ( stmt != null ) {
stmt.close();
stmt = null;
}
conn.close();
conn = null;
}
};
我的JSP添加注册用户的网页如下:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ include file="incoming/common.jsp"%>
<html>
<head>
<title>网上书店</title>
<link href="incoming/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<%@ include file="incoming/header.jsp"%>
<%
String userid = new String(request.getParameter("userid").trim().getBytes("ISO-8859-1"));
String password = new String(request.getParameter("password").trim().getBytes("ISO-8859-1"));
String username = new String(request.getParameter("username").trim().getBytes("ISO-8859-1"));
String address = new String(request.getParameter("address").trim().getBytes("ISO-8859-1"));
String phone = new String(request.getParameter("phone").trim().getBytes("ISO-8859-1"));
String email = new String(request.getParameter("email").trim().getBytes("ISO-8859-1"));
DBSQLManager dbsm = new DBSQLManager();
String sql="INSERT INTO userpassword VALUES('"+userid+"','"+password+"','N','"+username+"','"+address+"','"+phone+"','"+email+"')";
dbsm.setSqlStr(sql);
dbsm.executeUpdate();
dbsm.close();
%>
<br><a class="title">已经注册成功!请<a href="login.jsp">登录</a></a><br>
<%@ include file="incoming/footer.jsp"%>
</body>
</html>
哪位大侠给看一下啊!@!!!!!!晚辈这里有礼了!!!!!!!!!!!!!
问题点数:80、回复次数:17Top
1 楼wangruiqi(宝宝)回复于 2006-05-03 02:00:46 得分 0
对了,回答问题的大侠:
晚辈我的QQ号是281887237,邮箱是281887237@qq.com,你如果能够解决我的问题,希望您能很快的通知我,谢谢!!!Top
2 楼heliang69(紫星)回复于 2006-05-03 12:34:27 得分 0
把executeUpdate方法名换个名,试一试Top
3 楼FinalKing(编译女人....小心异常...)回复于 2006-05-03 15:58:52 得分 0
你可以用System.out.print(sql) 看看正确不正确
原因可能很多方面
多用单步和后台输出 比较快就能找到错误Top
4 楼heimao5214()回复于 2006-05-03 17:15:42 得分 0
我也是这个问题 我的是Blog
然后我也是数据库连接有问题~~~
QQ 88531717 谁知道的跟我说下哈
急救~Top
5 楼xiongbing528(多情剑客无情剑)回复于 2006-05-03 20:13:59 得分 0
try
{
}
catch(SQLException e)
{
while(e!=null)
{
out.print(e.getMessage());
out.print(e.SQLState());
out.print(e.getErrorCode());
e=e.getNextException();
}
}Top
6 楼xiongbing528(多情剑客无情剑)回复于 2006-05-03 20:14:58 得分 0
先帮你扑捉异常。看看是代码那里有问题。。
Top
7 楼mingr6370(丑男)回复于 2006-05-03 21:19:51 得分 0
java.lang.NullPointerException 检查你的变量和SQL语句Top
8 楼wangruiqi(宝宝)回复于 2006-05-03 22:34:56 得分 0
1,把executeUpdate方法名换个名,试一试
怎么换啊?能具体说一下吗??
2,你可以用System.out.print(sql) 看看正确不正确
原因可能很多方面
多用单步和后台输出 比较快就能找到错误
是不是这样:
public void executeUpdate() throws Exception {
int rowCount = stmt.executeUpdate(sqlStr);
System.out.print(sql)
}
还是把那个语句放在外边。
Top
9 楼btb368()回复于 2006-05-04 09:10:55 得分 0
空指针异常,可能是你的数据库没有连接上。Top
10 楼szz1981()回复于 2006-05-04 09:19:00 得分 0
没有添加数据库驱动
DRIVEMENAGER
Top
11 楼sheep219(sheep219)回复于 2006-05-04 10:58:14 得分 0
lz情况我碰到过,帮一个一点不懂的家伙搞了一个毕业论文系统。装个JDK&TOMCAT就费了大半天。临时抱佛脚!^_^!!Top
12 楼wangruiqi(宝宝)回复于 2006-05-04 14:40:10 得分 0
不是吧,我也是一直怀疑我的数据库没搞好,不过我确实下了SQL server 2000 driver for JDBC啦,也把相应的文件拷到TOMCAT文件里了啊,郁闷中....Top
13 楼wangruiqi(宝宝)回复于 2006-05-04 14:49:57 得分 0
我的数据库的设置是这样的,我下的是SQL server 2000 driver for JDBC
安装文件夹是C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib
随后把里面的三个文件设置到C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib中
然后设置了一下环境变量
在classpath里设置了C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jarTop
14 楼wangruiqi(宝宝)回复于 2006-05-04 14:52:50 得分 0
具体的原因是我的数据库没有连接好了,不过是设置方面有问题?还是编码方面有问题呢?郁闷中...Top
15 楼HHD123()回复于 2006-05-04 16:23:21 得分 0
-----------------------------------------------------------------------------------
INSERT INTO userpassword VALUES('"+userid+"','"+password+"','N','"+username+"','"+address+"','"+phone+"','"+email+"')";
------------------------------------------------------------------------------------
有可能这个语句有问题,主要是每个数据项是否与你的数据库中定义的类型是一致不?
测试方法://dbsm.executeUpdate();
System.out.println(sql);
在TOMCAT中把输出的sql字符串复制直接在数据库中去执行一下,看能否成功;如果执
行不了就是这个语中有某个数据类型与设计的不匹配.Top
16 楼PopKaven(岁寒)回复于 2006-05-04 19:28:34 得分 0
现在应该不是sql语句错误,因为,如果的SQL语句错误的话,抛出的异常应该是SQLException,而现在抛出的异常是NullPointException,那就有可能是你的数据库没有连接上.Top
17 楼wangruiqi(宝宝)回复于 2006-05-04 23:28:42 得分 0
谢谢各位,我的问题搞定了,是SQL server 2000 没有打补丁,升级了一个SP3的补丁,问题解决了Top




