【问题标题】:Why doesn't insert statement create new rows?为什么插入语句不创建新行?
【发布时间】:2019-12-11 04:15:07
【问题描述】:

我的插入语句应该在我每次运行它时创建一个新行,但事实并非如此。它也没有给我带来任何错误。

    @Override
public void addToDatabase() {
    try {
        Connection myConn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:8889/Bank", "kculbreth36",
                "Gerder11");
        PreparedStatement pstmt = conn
                .prepareStatement("INSERT INTO budgeting (GrossPay, TakehomePay, Tips) VALUE (?,?,?)");
        pstmt.setDouble(1, gross);
        pstmt.setDouble(2, tax);
        pstmt.setInt(3, tips);
        pstmt.executeUpdate();
        conn.close();

    } catch (Exception exc) {
        exc.printStackTrace();
    }
}

【问题讨论】:

  • 应该是 VALUES (?,?,?)
  • @tha07 但没有错误 - 奇怪或错误。
  • 改变了,但桌子上仍然没有改变。
  • 你确定要调用这个方法吗?
  • 在我的主目录中,我这样称呼它,所以我不确定为什么它不起作用`income i = new income(); i.displayDate(); i.displayIncome(); i.addToDatabase();`

标签: java mysql database insert


【解决方案1】:

问题是您使用myConn 作为连接,但使用conn 创建一个准备好的语句。因此,您的 conn 可能单独执行并且可能不提交(并且连接未处于自动提交模式),或者在单独的数据库模式中(您没有提供足够的信息)。事实上,该语句应该抛出一个SQLException,因为插入语句的语法应该是“VALUES”关键字而不是“VALUE”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 2020-10-10
    • 2016-01-17
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    相关资源
    最近更新 更多