JSP 简单插入不能 运行 in class
JSP simple insertion cannot run in class
我正在尝试做一个简单的插入,比如
String sql = "INSERT INTO UserBanker(firstname,lastname,gender,mobile,email)VALUES(?,?,?,?,?)";
int rowsAffected = 0;
try{
PreparedStatement stmt=con.prepareStatement(sql);
stmt.setString(1, "abc");
stmt.setString(2, "abc");
stmt.setString(3, "abc");
stmt.setString(4, "abc");
stmt.setString(5, "abc");
rowsAffected = stmt.executeUpdate();
} catch (SQLException e){
e.printStackTrace();
}
它的工作原理并且能够插入。但是当我像下面这样在 oop 中尝试这种方法时
public class User{
...
}
public class Banker extends User{
...
public int store(Connection con){
String sql = "INSERT INTO UserBanker(firstname,lastname,gender,mobile,email)VALUES(?,?,?,?,?)";
int rowsAffected = 0;
try{
PreparedStatement stmt=con.prepareStatement(sql);
stmt.setString(1, super.getFirstName());
stmt.setString(2, super.getLastName());
stmt.setString(3, super.getGender());
stmt.setString(4, this.getMobile());
stmt.setString(5, this.getEmail());
rowsAffected = stmt.executeUpdate();
} catch (SQLException e){
e.printStackTrace();
}
return rowsAffected;
}
...
}//end of class
我这样称呼它
Banker b1= new Banker();
...set all value...
b1.store(con);
上面的 oop 脚本 总是 return 意外结果,即 0。
The oop script above always return unexpected result which is 0.
那是因为在您的 try
块中抛出了一个 SQLException,而您在 catch
块中吞下了它。因此 rowsAffected
保留其初始值。
可能抛出异常是由于您的 insert
语句中的语法错误。从参数标记 ?
周围删除单引号 '?'
并让 JDBC 像它应该的那样为您做。
起初我认为我的对象行为发生了变化,感谢 Exbury 为我的查询指出 e.printStackTrace();
。 输出是 'the column mobile is not valid' ,我在 table
中缺少一列
我正在尝试做一个简单的插入,比如
String sql = "INSERT INTO UserBanker(firstname,lastname,gender,mobile,email)VALUES(?,?,?,?,?)";
int rowsAffected = 0;
try{
PreparedStatement stmt=con.prepareStatement(sql);
stmt.setString(1, "abc");
stmt.setString(2, "abc");
stmt.setString(3, "abc");
stmt.setString(4, "abc");
stmt.setString(5, "abc");
rowsAffected = stmt.executeUpdate();
} catch (SQLException e){
e.printStackTrace();
}
它的工作原理并且能够插入。但是当我像下面这样在 oop 中尝试这种方法时
public class User{
...
}
public class Banker extends User{
...
public int store(Connection con){
String sql = "INSERT INTO UserBanker(firstname,lastname,gender,mobile,email)VALUES(?,?,?,?,?)";
int rowsAffected = 0;
try{
PreparedStatement stmt=con.prepareStatement(sql);
stmt.setString(1, super.getFirstName());
stmt.setString(2, super.getLastName());
stmt.setString(3, super.getGender());
stmt.setString(4, this.getMobile());
stmt.setString(5, this.getEmail());
rowsAffected = stmt.executeUpdate();
} catch (SQLException e){
e.printStackTrace();
}
return rowsAffected;
}
...
}//end of class
我这样称呼它
Banker b1= new Banker();
...set all value...
b1.store(con);
上面的 oop 脚本 总是 return 意外结果,即 0。
The oop script above always return unexpected result which is 0.
那是因为在您的 try
块中抛出了一个 SQLException,而您在 catch
块中吞下了它。因此 rowsAffected
保留其初始值。
可能抛出异常是由于您的 insert
语句中的语法错误。从参数标记 ?
周围删除单引号 '?'
并让 JDBC 像它应该的那样为您做。
起初我认为我的对象行为发生了变化,感谢 Exbury 为我的查询指出 e.printStackTrace();
。 输出是 'the column mobile is not valid' ,我在 table