为什么向数据库中插不进数据

zhoutaibo 2008-06-16 04:51:02
我在运行jsp文件时,servlet中的输出语句能正常运行,显示结果为:注册成功!但是数据库中没我提交的数据,为什么,请各位帮帮忙。
我的JSP文件如下://此文件正常运行,在此省去部分代码
<%@page import="MyPackeg.zhucejava"%>
<%@page import="MyPackeg.ZhuceInsert" %>
<form id="form1" name="form1" method="post" action="servlet/ZhuceInsert">
<input type="text" name="zhucexuenian" id="zhucexuenian" />
<select name="xueqi" id="xueqi" size="1">
<option value="上学期">上学期</option>
<option value="下学期">下学期</option>
</select>
<select name="suozaibanji" id="suozaibanji">
<% Conn_DbTest zhclink=new Conn_DbTest();
ResultSet rs=zhclink.executeQuery("select ClassName from Class");
while(rs.next()){%>
<option><%=rs.getString("ClassName") %></option>
<%} %>
</select>
<input type="text" name="xuehao" id="xuehao" />

我在servlet中的post方法中的代码如下://此文件编译无错,在此省去部分代码
String zhucexuenian=request.getParameter("zhucexuenian");
String xueqi=request.getParameter("xueqi");
String suozaibanji=request.getParameter("suozaibanji");
String xuehao=request.getParameter("xuehao");
String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)values (zhucexuenian,xueqi,suozaibanji,xuehao)";

try{
zhucejava zhuce=new zhucejava();//zhucejava为连接数据库的java类
out.print("注册成功!");
zhuce.executeUpdate(sql);
}catch(Exception e){}

而我在zhucejava中的代码如下://此文件运行正常,在这里省去部分代码
public void executeUpdate(String sql){//此行省去代码
PreparedStatement pstmt=null;
try{
pstmt=conn.PrepareStatement(sql);
pstmt.addBatch();
pstmt.executeBatch();
}catch(}
}


...全文
211 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoutaibo 2008-06-19
  • 打赏
  • 举报
回复
如果不要form1就什么东西都插不进去呀,数据库根本没反应
,我想问哈是不是我的servlet调用java类时出错了,你们帮我看看嘛
zhj92lxs 2008-06-19
  • 打赏
  • 举报
回复
老大不要 form1这样request.getParameter("xueqi");
zhoutaibo 2008-06-19
  • 打赏
  • 举报
回复
我把servlet中post方法从
String zhucexuenian=request.getParameter("zhucexuenian");
String xueqi=request.getParameter("xueqi");
String suozaibanji=request.getParameter("suozaibanji");
String xuehao=request.getParameter("xuehao");
String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)values (zhucexuenian,xueqi,suozaibanji,xuehao)";
改为:
String zhucexuenian=request.getParameter("form1.zhucexuenian");
String xueqi=request.getParameter("form1.xueqi");
String suozaibanji=request.getParameter("form1.suozaibanji");
String xuehao=request.getParameter("form1.xuehao");
String sql="insert into cheakon(Zyear,BTerm,ClassName,Sno)values('"+zhucexuenian+"','"+xueqi+"','"+suozaibanji+"','"+xuehao+"')";
但插进数据库的值是null
为什么会这样,求求各位帮帮忙。
zhoutaibo 2008-06-19
  • 打赏
  • 举报
回复
我已经照你们说的做了,为什么还是插不进数据呀,我已经把这句:
String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)values (zhucexuenian,xueqi,suozaibanji,xuehao)";
改为:String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)values ('"+zhucexuenian+"','"+xueqi+"','"+suozaibanji+"','"+xuehao+"')";
为什么还是插不进呀,急呀,再过几天就交东西了,求各位了
yiyi_wx 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zhoutaibo 的回复:]
啊,原来是这么回事,谢谢各位了。怎么加分呀
[/Quote]
加分的话要等一天以后
同样第二个按钮“帖子加分”
只能加一次。。100分
yiyi_wx 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zhoutaibo 的回复:]
啊,原来是这么回事,谢谢各位了。怎么加分呀
[/Quote]
进入你帖子左上方第三个按钮“结贴去”
进入后每一楼右侧分配分值
分配完毕后点击“结贴”

或直接点击帖子列表最右侧的“管理”
之后操作同上
yiyi_wx 2008-06-16
  • 打赏
  • 举报
回复
String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)values (zhucexuenian,xueqi,suozaibanji,xuehao)";
--------------------------------------->>
String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)values ('"+zhucexuenian+"','"+xueqi+"','"+suozaibanji+"','"+xuehao+"')";

变量需要这么写。。。
一对单引号中间一对双引号中间一对加号
如果是字段是整型则单引号可以不要
zhoutaibo 2008-06-16
  • 打赏
  • 举报
回复
啊,原来是这么回事,谢谢各位了。怎么加分呀
dudu3052 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 burningice44 的回复:]
sql语句错误,
如果,你要插入的都是字符串类型的话应写为:
String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)values ('"+zhucexuenian+"','"+xueqi+"','"+suozaibanji+"','"+xuehao+"')";
或用
String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)values (?,?,?,?)"
[/Quote]
dudu3052 2008-06-16
  • 打赏
  • 举报
回复
PreparedStatement 是这样应用的吗?
burningice44 2008-06-16
  • 打赏
  • 举报
回复
sql语句错误,
如果,你要插入的都是字符串类型的话应写为:
String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)values ('"+zhucexuenian+"','"+xueqi+"','"+suozaibanji+"','"+xuehao+"')";
或用
String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)values (?,?,?,?)"
youmengguaiguai 2008-06-16
  • 打赏
  • 举报
回复
因为你的values中引用的是变量,所以values部分应写成
String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)

values ('"+zhucexuenian+"','"+xueqi+"','"+suozaibanji+"','"+xuehao+"')";
就可以了。

jdlsfl 2008-06-16
  • 打赏
  • 举报
回复
String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)values ('"+zhucexuenian+"','"+xueqi+"','"+suozaibanji+"','"+xuehao+"')";

如果字段都是字符串就这样处理,是数字就把'去掉
sunshinewhile 2008-06-16
  • 打赏
  • 举报
回复
out.print("注册成功!");放在zhuce.executeUpdate(sql);后面看能不能输出
第二个select中option没有value属性
gongyali2005 2008-06-16
  • 打赏
  • 举报
回复
问题有点严重.推荐你看看李兴华的STRUTS+MVC的登陆视频,在WWW.MLDN.NET里可以下载.
interpb 2008-06-16
  • 打赏
  • 举报
回复
catch(Exception e){
//打印下日志

}

另外 你的注册成功在执行sql之前输出 就是报错也会输出成功
jdlsfl 2008-06-16
  • 打赏
  • 举报
回复
String sql="insert into cheakon(Zyear,Zterm,zclass,Znum)values (zhucexuenian,xueqi,suozaibanji,xuehao)";

sql竟然可以这样写,你的值呢

81,114

社区成员

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

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