我正在尝试做一个简单的插入,例如
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脚本总是返回意外的结果,即0。
最佳答案
The oop script above always return unexpected result which is 0.
那是因为您的 try
block 中抛出了 SQLException,并且您在 catch
block 中吞下了它。因此,rowsAffected
保留其初始值。
抛出的异常可能是由于 insert
语句中的语法错误造成的。删除参数标记 ?
周围的单引号 '?'
并让 JDBC 为您做这件事,就像它应该做的那样。
关于java - JSP简单插入无法在类中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28096377/