Jsp中向Mysql数据库表插入记录的问题

当向Mysql数据库表中查询时,正常。可是向Mysql数据库表插入新纪录时,数据库表并没有没有插入成功,程序没有提示错误代码如下:packagecom.login.str... 当向Mysql数据库表中查询时,正常。可是向Mysql数据库表插入新纪录时,数据库表并没有没有插入成功,程序没有提示错误
代码如下:
package com.login.struts;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class SetproblemAction extends Action {
Dbdriver db=new Dbdriver();
/* (non-Javadoc)
* @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
Connection connection=null;
Statement statement=null;
public SetproblemAction()
{
String userName="root";//数据库用户名
String userPasswd="";//密码
String dbName="acmdata";//数据库名
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;//联结字符串
try {
Class.forName("com.mysql.jdbc.Driver").newInstance(); //加载Mysql数据库驱动
}
catch (Exception e1) {
e1.printStackTrace();
}
try{
connection = DriverManager.getConnection(url); //建立连接这里student为数据库名
statement = connection.createStatement();
}catch(SQLException e1){
e1.getStackTrace();
}
}
public void add(String s1,String s2,String s3,String s4,String s5)
{
String sql="";
try{
sql="INSERT INTO problem(No,title,describe,input,output)VALUES('"+s1+"','"+s2+"', '"+s3+"','"+s4+"','"+s5+"')";
ResultSet rs= statement.executeQuery(sql);
while(rs.next())
{
String number = rs.getString("No");
String title = rs.getString("title");
String describe = rs.getString("describe");
String input = rs.getString("input");
String output = rs.getString("output");
System.out.print(number);
System.out.print(title);
System.out.print(describe);
System.out.print(input);
System.out.print(output);
}
}
catch(SQLException e2){
e2.getStackTrace();
}
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String number = request.getParameter("No_problem");
String title=request.getParameter("Title_problem");
String describe=request.getParameter("Describe_problem");
String input=request.getParameter("Input_problem");
String output=request.getParameter("Output_problem");

add(number,title,describe,input,output);
return mapping.findForward("error");
}

}
展开
 我来答
第8感超人
2009-10-08 · TA获得超过659个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:328万
展开全部
sql="INSERT INTO problem(No,title,describe,input,output)VALUES('"+s1+"','"+s2+"', '"+s3+"','"+s4+"','"+s5+"')";
ResultSet rs= statement.executeQuery(sql);

这什么啊 你执行的插入语句 怎么能用executeQuery呢
Query这个词是查询的意思啊

executeUpdate(String sql)
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。

返回的是int值

ResultSet rs= statement.executeQuery(sql);
while(rs.next())
{
String number = rs.getString("No");
String title = rs.getString("title");
String describe = rs.getString("describe");
String input = rs.getString("input");
String output = rs.getString("output");
System.out.print(number);
System.out.print(title);
System.out.print(describe);
System.out.print(input);
System.out.print(output);
}

这统统删掉 根本不返回resultset对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5d965273a
2009-10-08 · 超过15用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:50.9万
展开全部
INSERT INTO problem(No,title,describe,input,output)VALUES

问题主要出现在这句,这里面的No和describe都是关键字,所以必须换成其他非关键字。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qinghua9
2009-10-08 · TA获得超过1679个赞
知道大有可为答主
回答量:6101
采纳率:0%
帮助的人:2360万
展开全部
建议,你这种插入的话用prepareStatement做参数的设置,以防止过多的字符串拼接。
还有你执行时用的是executeQuery
这是执行select语句时用的。你用execute()试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
16...7@qq.com
2009-10-08 · TA获得超过781个赞
知道小有建树答主
回答量:818
采纳率:0%
帮助的人:391万
展开全部
ResultSet rs= statement.executeQuery(sql);
这是执行查询的函数
而你的sql是插入语句
还有你的sql语句也不对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式