使用jsp在MySQL表中插入一行

时间:2012-11-11 09:42:59

标签: 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");
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_id在mysql表中设置为autoincrement,因此我使用null

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

我从netbeans 7.0.1运行代码

3 个答案:

答案 0 :(得分:2)

由于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);

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

您甚至不可以使用null进行查询!