| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1365 人关注过本帖
标题:[求助]为什么向数据库插入不了数据呢
只看楼主 加入收藏
binbinwu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-26
收藏
 问题点数:0 回复次数:8 
[求助]为什么向数据库插入不了数据呢


<%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.lang.Math.*" %>
<jsp:useBean id="conn" scope="page" class="download.conn"/>
<html>
<head>
<title>网上书店</title>
<link href="incoming/style.css" rel="stylesheet" type="text/css">
</head>
<body>

<%
String userid =request.getParameter("useid");
String password = request.Parameter("password");
String username = request.getParameter("username");
String address = request.getParameter("address");
String phone =request.getParameter("phone");
String email = request.getParameter("email");


String sql="INSERT INTO BUYERINFO
VALUES('"+userid+"','"+password+",'"+username+"','"+address+"','"+phone+"','"+email+"')";
conn.executeUpdate(sql);
%>
<br><a class="title">已经注册成功!请<a href="login.jsp">登录</a></a><br>
<%@ include file="incoming/footer.jsp"%>
</body>
</html>
小弟用上面的代码想往数据库中插入数据,可是每次都显示下面的错误:

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 13 in the jsp file: /ruanjianxiazai/adduser.jsp
Generated servlet error:
String literal is not properly closed by a double-quote


	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	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

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 13 in the jsp file: /ruanjianxiazai/adduser.jsp
Generated servlet error:
String literal is not properly closed by a double-quote


	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:409)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
	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.15 logs.


Apache Tomcat/5.5.15

希望有人能救下我,谢谢了

搜索更多相关主题的帖子: 数据库 
2006-05-26 21:05
球球
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:1146
专家分:265
注 册:2005-11-28
收藏
得分:0 
conn.executeUpdate(sql); 这个对象方法从何而来?
你的驱动,连接,状态对象呢?

好累
2006-05-28 02:12
sheva0707
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-5-1
收藏
得分:0 

可以在JSP中使用一个useBean,实现和后台数据库的连接。在处理页面写<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="addBean" scope="page" class="guest.guestbook" /> //class=包名.类名
在插入语句后写addBean.executeUpdate(strSQL);

把以下文件贴到写字板,另存为.java文件,放在webapps\ROOT\WEB-INF\classes\guest类文件根目录下,以后执行数据库操作时写useBean语句就行了。

package guest; //包名
import java.sql.*;

public class guestbook { //类名
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:guestbook"; //odbc:后面是你配置数据源的名
private Connection conn = null;
private Statement stmt = null;
ResultSet rs = null;

public guestbook() {
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("guestbook(): " + e.getMessage());
}
}

public ResultSet executeQuery(String sql) {
rs = null;
try {
conn = DriverManager.getConnection(sConnStr);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
return rs;
}

public void executeUpdate(String sql) {
stmt = null;
rs=null;
try {
conn = DriverManager.getConnection(sConnStr);
stmt = conn.createStatement();
stmt.executeQuery(sql);
stmt.close();
conn.close();
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
}

public void closeStmt(){
try{
stmt.close();
}
catch(SQLException e){
e.printStackTrace();
}
}
public void closeConn(){
try{
conn.close();
}
catch(SQLException e){
e.printStackTrace();
}
}
}


2006-05-28 09:47
glamey
Rank: 2
等 级:论坛游民
威 望:1
帖 子:57
专家分:17
注 册:2006-5-31
收藏
得分:0 
老大应该这样来做
<%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.lang.Math.*" %>
<jsp:useBean id="conn" scope="page" class="download.conn"/>
<html>
<head>
<title>网上书店</title>
<link href="incoming/style.css" rel="stylesheet" type="text/css">
</head>
<body>

<%
String userid =request.getParameter("useid");
String password = request.Parameter("password");
String username = request.getParameter("username");
String address = request.getParameter("address");
String phone =request.getParameter("phone");
String email = request.getParameter("email");


//添加
Statement stmt=conn.createStatement();


String sql="INSERT INTO BUYERINFO
VALUES('"+userid+"','"+password+",'"+username+"','"+address+"','"+phone+"','"+email+"')";
//更改conn.executeUpdate(sql);
stmt.executeUpdate(sql);
%>
<br><a class="title">已经注册成功!请<a href="login.jsp">登录</a></a><br>
<%@ include file="incoming/footer.jsp"%>
</body>
</html>


好了这样就好了你先自己来检测以下 应该不会出现问题呢!


你主要是少个sql执行类Statement
你直接用conn来执行插入就不对了;..


锲而不舍。自信自强。
2006-05-31 18:59
szjstar
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-7-5
收藏
得分:0 

老大。。连接数据库操作时首先应该装载驱动程序、再创建数据库连接。然后在执行增删改查操作。关于装载驱动与连接数据库有四种类型,你自己针对你自己的喜好来定。不过现在都用第四类型驱动。二楼哪们朋友写的是第一类型ORACLE的连接。可能不适合你。你用的是SQLSERVER :
SQLSERVER
装载驱动
Class.fromname("com.microsoft.jdbc.sqlsqerver.SQLServerDriver").newInstance();
创建连接
Connection conn=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名","sa","")
这里SQLSERVER 用户名SA 密码为空
记得SQLSERVER 打SP3以上的补丁。而且1433端口要打开哦

2006-07-05 10:52
球球
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:1146
专家分:265
注 册:2005-11-28
收藏
得分:0 
把javabean里头的内容也贴上来吧。

好累
2006-07-12 00:13
glamey
Rank: 2
等 级:论坛游民
威 望:1
帖 子:57
专家分:17
注 册:2006-5-31
收藏
得分:0 
哈哈。你要继续努力了。

锲而不舍。自信自强。
2006-07-21 16:20
飓风
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-7-20
收藏
得分:0 

好像是类不能编译!


不断的错,总有对的时候……
2006-07-21 22:25
hanbing083
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-7-24
收藏
得分:0 
你应该把你的.java文件也写出来才能看出错误
不过你数据库连接好像错了!
2006-07-24 07:33
快速回复:[求助]为什么向数据库插入不了数据呢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016593 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved