使用jsp向MySQL表插入一行

使用jsp向MySQL表插入一行,mysql,sql,jsp,jdbc,insert,Mysql,Sql,Jsp,Jdbc,Insert,我想用jsp代码将行插入mysql数据库,但我不能。 以下是我没有html表单的jsp代码: <% String login = request.getParameter("login"); String password = request.getParameter("password"); String full_name = request.getParameter("full_name"); String ulevel = request.getParameter("ulevel"

我想用jsp代码将行插入mysql数据库,但我不能。 以下是我没有html表单的jsp代码:

<%
String login = request.getParameter("login");
String password = request.getParameter("password");
String full_name = request.getParameter("full_name");
String ulevel = request.getParameter("ulevel");
String team_id = request.getParameter("team_id");

Connection connection = null;
PreparedStatement pstatement = null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
int updateQuery = 0;
if(login!=null && password!=null && full_name!=null && ulevel!=null && team_id!=null){
if(login!="" && password!="" && full_name!="" && ulevel!="" && team_id!="") {
    try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/android","root","root");
String queryString = "INSERT INTO users(user_id,login,password,full_name,ulevel,team_id) VALUES (null, ?, ?, ?, ?, ?)";
pstatement = connection.prepareStatement(queryString);
pstatement.setString(2, login);
pstatement.setString(3, password);
pstatement.setString(4, full_name);
pstatement.setString(5, ulevel);
pstatement.setString(6, team_id);
updateQuery = pstatement.executeUpdate();
if (updateQuery != 0) { %> 

当我按SUBMIT时,网页会显示以下内容:

键入状态报告消息说明请求的资源()为 没有

p.s.:
user\u id
在mysql表中设置为
autoincrement
,所以我使用
null

但我不知道,这是正确的方式

我从netbeans 7.0.1运行代码,因为
ID
是自动递增的,所以将其从列表中删除,preparedstatement在其参数上查找索引
1

String queryString = "INSERT INTO users(login,password,full_name,ulevel,team_id) VALUES (?, ?, ?, ?, ?)";
pstatement = connection.prepareStatement(queryString);
pstatement.setString(1, login);
pstatement.setString(2, password);
pstatement.setString(3, full_name);
pstatement.setString(4, ulevel);
pstatement.setString(5, team_id);
下面这一个没有经过测试

只需使用
1
启动参数,因为只有5个参数需要定义

String queryString = "INSERT INTO users(user_id,login,password,full_name,ulevel,team_id) VALUES (null, ?, ?, ?, ?, ?)";
pstatement = connection.prepareStatement(queryString);
pstatement.setString(1, login);
pstatement.setString(2, password);
pstatement.setString(3, full_name);
pstatement.setString(4, ulevel);
pstatement.setString(5, team_id);

我发现了问题。错误是html格式的,在属性
action
处,我有一个以前从未有过的源文件:/

String queryString = "INSERT INTO users(user_id,login,password,full_name,ulevel,team_id) VALUES (?, ?, ?, ?, ?)";

您不应该在查询中使用任何内容,即使
null

作为旁注:不要把逻辑放在JSP中,把它移到一个servlet中。我有另一个JSP代码用于从表中选择列……没有servlet它可以正常工作。您没有抓住要点,它可以正常工作,但混合表示层(JSP)和业务逻辑层(servlet)被认为是一种不好的做法。@ftom2+1。这是一个很好的解释: