java - JSP简单插入无法在类中运行

标签 java mysql jsp oop

我正在尝试做一个简单的插入,例如

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/

相关文章:

java - JUnit用于抽象类的final方法

mysql - 在没有安装mysql的情况下在unix bash中运行mysql命令?

php - mysql 更新查询失败

java - QPDF 的 PDF 转换问题

java - 从表单调用 servlet 不起作用

java - XML SAX 解析

java - 将 LocalDate 复制到 java.time 日历中的另一个位置

linux - 从另一个 linux 服务器连接 linux 平台中的 postgres 服务器

java - Java代码中的奇怪输出(方形符号)

mysql - 使用 SQL concat 和 coalesce 在值为 null 时显示