送分!急求问题解答 JSP不能写入数据库且不报错 得到的id是0 真心很急 谢谢各位!!1
我的注册界面一部分 重点就这些
<script>
$(function(){
$("#form999").submit(function(){
if($("#name").val().length<2){
alert("请输入您的姓名!")
$("#name").focus();
return;
}
if($("#mail").val()==""){
alert("请输入您的信箱!")
$("#mail").focus();
return;
}
if($("#pwd").val()!=$("#pwd1").val()){
alert("两次输入的密码不一致!")
$("#pwd").focus();
return;
}
if($("#mobil").val()==""){
alert("\u8bf7输入您的手机!")
$("#mobil").focus();
return;
}
if($("#add").val()==""){
alert("\u8bf7输入您的收货地址!")
$("#add").focus();
return;
}
form999.action="Register";
$("#form999").submit();
//
})
})
</script>
</head>
<body>
<%@include file = "top.jsp" %>
<div class="main">
<table class="ct">
<tr>
<td class="leftcol">
<div class="leftcol1 leftcol2" style="height:308px;">
<h3>注册须知</h3>
<form id="form999" name="form999" action="javascript:void();" method="post">
<table class="formTb">
我的servlet
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
RegisterBean rb = new RegisterBean();
request.setAttribute("haha", rb);
System.out.print("ok");
int num,n=0;
String s1 = request.getParameter("name").trim();
String s2 = request.getParameter("pwd").trim();
String s3 = request.getParameter("mail");
String s4 = request.getParameter("mobile").trim();
String s5 = request.getParameter("add").trim();
try
{
Statement sta = dbcon.getcon().createStatement();
ResultSet rs = sta.executeQuery("select * from users");
rs.last();
num = rs.getInt(3)+1;
PreparedStatement pre = dbcon.getcon().prepareStatement("insert into users values(?,?,?,?,?,?)");
pre.setInt(3, num);
pre.setString(1, s1);
pre.setString(2, s2);
pre.setString(4, s3);
pre.setString(5, s4);
pre.setString(6, s5);
pre.executeUpdate();
rb.setid(num);
rb.setname(s1);
rb.setPassword(s2);
}
catch(Exception e)
{
System.out.print("errr");
}
RequestDispatcher disp = request.getRequestDispatcher("show.jsp");
disp.forward(request, response);
}
Bean:
public class RegisterBean {
String name,password;
int id;
public void setname(String s)
{
name = s;
}
public String getname()
{
return name;
}
public void setPassword(String s)
{
password = s;
}
public String getPassword()
{
return password;
}
public void setid(int x)
{
id = x;
}
public int getid()
{
return id;
}
}
JSP:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="zkgo.RegisterBean" %>
<jsp:useBean id="haha" type="zkgo.RegisterBean" scope="request"/>
<!DOCTYPE html>
<html>
<body>
<%@include file = "top.jsp" %>
<center>
<p>注册成功!您的ID是:
<jsp:getProperty name="haha" property="id"/><br>
</center>
</body>
</html>
这是我的考试作业 真心急求 卡在这里了!!!! 数据库 JSP HTML
[解决办法]
servlet中,Connection 和 ResultSet要正确关闭的吧。
[解决办法]
建立一个数据库序列,使用数据库序列做为主键
[解决办法]
1,不能写入数据库应该是没有commit,在pre.executeUpdate();后加上dbcon.getcon().commit();
2,id为0,应该是setAttribute的位置有误,request.setAttribute("haha", rb);放在rb.setPassword(s2);的后面。
[解决办法]
没有写入数据库是缺少插入执行语句pre.pre.execute();
id为0大概是因为没写入数据吧
[解决办法]
创建序列的Sql
CREATE SEQUENCE s_users
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
insert时候的处理
PreparedStatement pre = dbcon.getcon().prepareStatement("insert into users values( (SELECT nextval('s_users
')),?,?,?,?,?)");
不要自己去设置ID,
还有就是你的“pre ”需要在update后面commit,
使用这种模块来处理你的insert
try{
insert语句
update
事务提交
}cacth(Exception e){
事务回滚处理
}finlly{
连接关闭处理
}
[解决办法]
<jsp:useBean> 指的是创建一个Bean实例并指定它的名字和作用范围.
[解决办法]