开发者

JDBC insert statement is not working

I am trying to insert new record, using jdbc. Everything look like ok, I don't have any exception, but new reco开发者_如何学Crd isn't inserted into the table. Select statement works right.

  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();  
    }
}

What can be wrong?


I have had a similar situation where my DB query software didn't see inserts/updates done from my Java program because they weren't committed, and therefore were not visible to other connections.

Try doing an explicit commit right after executing the statement:

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

If that works you may want to adjust your AutoCommit settings, or just stay with the explicit commit.


I would try disabling Auto Commit and doing the transaction manually, see if that helps.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜