写了一个注册页面,数据库id是主键但是要自动生成id,现在只能生成id为1,怎么按顺序生成id
 <%@page import="com.sun.corba.se.spi.orbutil.fsm.Guard.Result"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
<%@ page import= "edu.jmi.db.*" %>
<%@ page import= "edu.jmi.dao.*" %>
<%@ page import= "edu.jmi.model.*" %>
<%@ page import= "java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<style type="text/css">
</style>
<body>
<center>
<%
//1设置解码
    request.setCharacterEncoding("utf-8");
//2获取参数
    String str=request.getParameter("name");
    String str1=request.getParameter("password");
    String str2=request.getParameter("password2");
    String str3=request.getParameter("mail");
    System.out.println(str+str1+str2+str3);
    if(str==null){//如果初次加载页面,直接返回,不会执行下面存取数据库的代码
         //return;
    }else{
        session.setAttribute("usr", str);
        response.sendRedirect("regok.jsp"); 

//3存取数据库
//3.1获取数据库链接
    Connection conn=DB.getConnection();
//3.2准备插入sql语句
    String sql="insert into user values(?,?,?,?)";
    PreparedStatement pst=conn.prepareStatement(sql);
    pst.setInt(1, 1); //id
    pst.setString(2,str);//name
    pst.setString(3,str1);//pass
    pst.setString(4,str3);//email
//3.3执行插入
    int res=pst.executeUpdate();
    System.out.println("插入结果是:"+res);
    pst.close();
    conn.close();
    }

%>
<form action="" >
         <p>用户名:<input type="text" value="" name="name"></p>           
         <p>密码:<input type="password" value="" name="password"></p>               
         <p>确认密码:<input type="password" value="" name="password2"></p>
         <p>邮箱:<input type="text" value="" name="mail"></p>              
                <input type="submit"  value="注册">
                <input type="reset"  value="重置">
</form>
</center>
</body>
</html>

2个回答

在数据库中配置id为自增长,然后insert sql 就不需要带id

lvyanqin2013
zilin-lynn 然后改改pst
3 年多之前 回复
lvyanqin2013
zilin-lynn 回复java1996: insert into user(name,pass,email) values(?,?,?);
3 年多之前 回复
java1996
java1996 这个代码要怎么改
3 年多之前 回复
java1996
java1996 已经在mysql里设置自增长,在数据库里写也能实现里但是在注册页面写就会出错 pst.setInt(1,1); //id
3 年多之前 回复

什么数据库,如果是sqlserver直接在数据库中给id字段设置标识列。如果是oracle可以使用序列。不需要在代码中写自增。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问