Java JDBC insert语句不工作

Java JDBC insert语句不工作,java,jdbc,insert,Java,Jdbc,Insert,我正在尝试使用jdbc插入新记录。看起来一切正常,我没有任何异常,但新记录没有插入到表中。Select语句工作正常 public Connection getConnection(){ Connection conn=null; try { Class.forName("org.postgresql.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace();

我正在尝试使用jdbc插入新记录。看起来一切正常,我没有任何异常,但新记录没有插入到表中。Select语句工作正常

  public Connection getConnection(){
    Connection conn=null;
    try {
        Class.forName("org.postgresql.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

    try {
        conn = DriverManager.getConnection(url);
        conn.setAutoCommit(true);

    } catch (SQLException e) {
        e.printStackTrace();  
    }
    return conn;
}

public void insertDish(String name, float mass, float price, String description,int pizzeria_id) {
        String insertStr = "insert into \"Dish\"(name,mass,price,description,pizzeria_id) values("+"'"+name+"'"+", "+mass+", "+price+", "+"'"+description+"'"+", "+pizzeria_id+")";

      Connection conn = getConnection();

    try {
        Statement sql = conn.createStatement();
        sql.executeUpdate(insertStr);
        sql.close();
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();  
    }
}

有什么问题吗?

我会尝试禁用自动提交并手动执行事务,看看是否有帮助

我也遇到过类似的情况,我的DB query软件没有看到Java程序中的插入/更新,因为它们没有提交,因此其他连接看不到

在执行语句后立即尝试执行显式提交:

sql.executeUpdate(insertStr);
conn.commit(); // ADDED
sql.close();

如果这样做有效,您可能需要调整自动提交设置,或者只执行显式提交。

如果您使用sql并尝试直接在数据库中运行它,会发生什么情况?您确定没有异常吗?sql语句直接在数据库中添加新记录。没关系。它与jdbc.PreparedStatement不兼容!准备好的声明!准备好的声明!Wow-stringurl=jdbc:postgresql://localhost/PizzaDeliver?user=postgres&password=somepassword; 和值+'+名称+'+,+质量+,+价格+…-你只是要求被黑客攻击,这没用。也许postgresql 9存在一些问题,我将尝试使用旧版本。