表单提交上的数据不能插入数据库

among8788 2010-06-05 12:38:21
不知道该怎么描述我的问题。

表单提交数据插入到数据库的时候,总是插不进去。有一个字段是自动编号的,若是直接在数据库中插下一个数据,发现自动编号已经加上去了。也就是说,之前插进去的数据是存在过的。


用struts框架的。数据库MS SqlServer 2000。


dao里的方法也没问题,测试过了。表单提交的数据也是存在的,打印得出来。

把页面换掉重新做,问题解决过的,数据插入成功过几次,然后又出现同样的问题。

(其实代码完全一样的。就是我曾经动过一点,然后又改回去了。)

缓存问题吗?我把tomcat中work里文件夹都删了试过的。

代码如下:

cd_add_result.jsp



<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>

<%@ page import="com.form.CDForm" %>
<jsp:useBean id="CDDao" scope="page" class="com.dao.CDDao"/>
<%
String category_id=request.getParameter("category_id");
String CD_name=request.getParameter("CD_name");
String CD_artist=request.getParameter("CD_artist");
String CD_pic=request.getParameter("CD_pic");
String CD_company=request.getParameter("CD_company");
String CD_price=request.getParameter("CD_price");
String CD_place=request.getParameter("CD_place");
String CD_intro=request.getParameter("CD_intro");

if(category_id.equals("")||CD_name.equals("")||CD_artist.equals("")||CD_pic.equals("")||CD_company.equals("")||CD_price.equals("")||CD_intro.equals("")||CD_place.equals("")){
%>
请将CD信息填写完整。
<%}else{
request.setCharacterEncoding("gb2312");
CDForm CDForm=new CDForm();
CDForm.setCategory_ID(Integer.valueOf(request.getParameter("category_id")));
CDForm.setCD_Name(request.getParameter("CD_name"));
CDForm.setCD_Artist(request.getParameter("CD_artist"));
CDForm.setCD_Pic(request.getParameter("CD_pic"));
CDForm.setCD_Company(request.getParameter("CD_company"));
CDForm.setCD_Price(Float.valueOf(request.getParameter("CD_price")).floatValue());
CDForm.setCD_Place(request.getParameter("CD_place"));
CDForm.setCD_Intro(request.getParameter("CD_intro"));



CDDao.CD_insert(CDForm);

out.println("<script language='javascript'>alert('CD添加成功!');window.location.href='../CDAction.do?action=3';</script>");
}
%>

...全文
225 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
among8788 2010-06-05
  • 打赏
  • 举报
回复
CD_insert()方法代码如下:


public void CD_insert(CDForm form){
try {
statement=connection.prepareStatement("insert into CD(category_ID,CD_Name,CD_Place,CD_Pic,CD_Artist,CD_Company,CD_Price,CD_Intro) values(?,?,?,?,?,?,?,?)");

statement.setInt(1,form.getCategory_ID());
statement.setString(2,form.getCD_Name());
statement.setString(3, form.getCD_Place());
statement.setString(4, form.getCD_Pic());
statement.setString(5, form.getCD_Artist());
statement.setString(6, form.getCD_Company());
statement.setFloat(7, form.getCD_Price());
statement.setString(8, form.getCD_Intro());

statement.executeUpdate();
statement.close();

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
among8788 2010-06-05
  • 打赏
  • 举报
回复
com.form.CDForm如下。和这个该没什么关系吧。。

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.form;

import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

/**
* MyEclipse Struts
* Creation date: 05-08-2008
*
* XDoclet definition:
* @struts.form name="cDForm"
*/
public class CDForm extends ActionForm {
/*
* Generated Methods
*/

/**
* Method validate
* @param mapping
* @param request
* @return ActionErrors
*/


private Integer CD_ID=Integer.valueOf(-1);//CD编号
private Integer category_ID;//类别
private String CD_Name;//CD名称
private String CD_Place;//CD地域
private String CD_Pic;//CD图片
private String CD_Artist;//艺术家
private String CD_Company;//唱片公司
private float CD_Price;//CD价格
private String CD_Intro;//CD简介

public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
return null;
}

/**
* Method reset
* @param mapping
* @param request
*/
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}

/**
* Method validate
* @param mapping
* @param request
* @return ActionErrors
*/
public ActionErrors validate(ActionMapping mapping, ServletRequest request) {
// TODO Auto-generated method stub
return null;
}

/**
* Method reset
* @param mapping
* @param request
*/
public void reset(ActionMapping mapping, ServletRequest request) {
// TODO Auto-generated method stub
}

public int getCategory_ID() {
return category_ID;
}

public void setCategory_ID(int category_ID) {
this.category_ID = category_ID;
}

public String getCD_Artist() {
return CD_Artist;
}

public void setCD_Artist(String artist) {
CD_Artist = artist;
}

public String getCD_Company() {
return CD_Company;
}

public void setCD_Company(String company) {
CD_Company = company;
}

public int getCD_ID() {
return CD_ID;
}

public void setCD_ID(int cd_id) {
CD_ID = cd_id;
}

public String getCD_Intro() {
return CD_Intro;
}

public void setCD_Intro(String intro) {
CD_Intro = intro;
}

public String getCD_Name() {
return CD_Name;
}

public void setCD_Name(String name) {
CD_Name = name;
}

public String getCD_Pic() {
return CD_Pic;
}

public void setCD_Pic(String pic) {
CD_Pic = pic;
}

public String getCD_Place() {
return CD_Place;
}

public void setCD_Place(String place) {
CD_Place = place;
}

public float getCD_Price() {
return CD_Price;
}

public void setCD_Price(float price) {
CD_Price = price;
}
}
among8788 2010-06-05
  • 打赏
  • 举报
回复
刚把缓存删掉,又把tomcat里的这个项目文件夹给删了。重新发布了一次。

除了干这些,我其他都没干过。然后又能插数据了。。



为什么呢?还是想知道为什么。免得答辩的时候出问题。。。
sasgsc 2010-06-05
  • 打赏
  • 举报
回复
com.form.CDForm这个包里的内容贴出来....
buxiaoxin918 2010-06-05
  • 打赏
  • 举报
回复
CDForm CDForm=new CDForm();能这样写吗
直接CDDao.setCategory_ID(Integer.valueOf(request.getParameter("category_id")));
CDDao.setCD_Name(request.getParameter("CD_name"));
CDDao.setCD_Artist(request.getParameter("CD_artist"));
CDDao.setCD_Pic(request.getParameter("CD_pic"));
CDDao.setCD_Company(request.getParameter("CD_company"));
CDDao.setCD_Price(Float.valueOf(request.getParameter("CD_price")).floatValue());
CDDao.setCD_Place(request.getParameter("CD_place"));
CDDao.setCD_Intro(request.getParameter("CD_intro"));
这样就可以了吧!
among8788 2010-06-05
  • 打赏
  • 举报
回复
还需要其他代码吗?急救啊。。。过两天就要答辩了。。。
among8788 2010-06-05
  • 打赏
  • 举报
回复
问题解决。应该是字段设置得太小了。。。超出范围了。所以每次的插入数据方法都已经执行,但都没执行成功,所以才有这样的问题。

插成功的几次是因为数据大小没超出范围。。。。囧



谢谢大家的回答!
among8788 2010-06-05
  • 打赏
  • 举报
回复
有发布成功的。
xiaohuanjie 2010-06-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 among8788 的回复:]
刚把缓存删掉,又把tomcat里的这个项目文件夹给删了。重新发布了一次。

除了干这些,我其他都没干过。然后又能插数据了。。



为什么呢?还是想知道为什么。免得答辩的时候出问题。。。
[/Quote]


你确认一下有没有发布成功
xiaohuanjie 2010-06-05
  • 打赏
  • 举报
回复
顶一个

最好把异常信息也贴出来

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧