-1

1) 1 つの準備済みステートメントを使用して、Java から複数のテーブルにデータを渡すことはできますか? JDBCドライバーを使用している場所。

try
        {
            conn = ac.getConnection();
            String insert = "INSERT INTO PPN_WORKFLOW(C2_F_Date,C2_Completed) VALUES(?,?)";
            stmt = conn.prepareStatement(insert);
            stmt.setDate(1, date);//question 2
            stmt.setInt(2, 1);
            stmt.executeUpdate();
            stmt.close();
            String insert2 = "INSERT INTO CREATE_ERF(Purc_Part_New_F_Date,Purc_Part_New_Completed) "
                    + "VALUES(?,?)";
            stmt = conn.prepareStatement(insert2);
            stmt.setDate(1, date);
            stmt.setInt(2,1);
            stmt.executeUpdate();
        }
        catch(SQLException | ClassNotFoundException e) {e.printStackTrace();}
        finally
        {
            if(stmt != null) {
                stmt.close();
            }

            if(conn != null) {
                conn.close();
            }
        }

ここでは、テーブル PPN_WORKFLOW と CREATE_ERF に stmt(PreparedStatement) を使用していますか?

2) PPN_WORKFLOW テーブルは、次のようなより多くのパラメータで構成されています

PPN_WORKFLOW(C1_S_Date,C2_F_Date,C2_Completed)

しかし、2番目と3番目のパラメーターを更新したいので、私のコードは正しいですか。

4

2 に答える 2

3
String insert = "INSERT INTO PPN_WORKFLOW(C2_F_Date,C2_Completed) VALUES(?,?)";
stmt = conn.prepareStatement(insert);

prepareStatement()ファクトリーメソッドのように見てください。入力が与えられると、特定の状態のオブジェクトを返します。この時点で渡す入力はINSERTステートメントです。

同じオブジェクトを別の目的で再利用しようとしても意味がありません。これは、メソッドが で指定した引数に合わせて調整されたオブジェクトを返しているためですinsert。その別の目的に合わせて調整された別のオブジェクトを作成する必要があります。これは、コードで行うことです。

于 2013-03-07T16:35:55.070 に答える
1

2 番目のテーブルが最初のテーブルに依存する場合は、一度に各テーブルに値を挿入しますtry... while....

try{
        //insert to first table
        ///while true
    try{

     //insert to second table
        }finally{


        }
        }finally{
    //close resources
    }
于 2013-03-07T17:05:10.547 に答える