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

来源:百度知道 编辑:UC知道 时间:2024/06/11 07:59:13
当向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()

INSERT INTO problem(No,title,describe,input,output)VALUES

问题主要出现在这句,这里面的No和describe都是关键字,所以必须换成其他非关键字。

建议,你这种插入的话用prepareStatement做参数的设置,以防止过多的字符串拼接。
还有你执行时用的是executeQuery
这是执行select语句时用的。你用execute()试试

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("des