2017-03-14 14 views
0

selectクエリをレコードのリストを取得する準備文に渡しています。 問題は、テーブルを挿入または切り捨てるためにクエリを追加すると、準備されたステートメントがすべてのクエリを実行することです。 例一度に1つのクエリを実行するように準備された文を制限する

SELECT INDEX.* 
    ,item.* 
FROM cust_sales_order_index AS INDEX 
INNER JOIN (
    SELECT pkid AS item_pkid 
     ,index_id 
     ,item_code 
     ,NAME 
     ,quantity AS item_quantity 
    FROM cust_sales_order_item 
    ) AS item 
    ON INDEX.pkid = item.index_id 
WHERE (pkid = 100001); 

CREATE TABLE temp_cust_sales_order_index_temp (LIKE cust_sales_order_index); 

WITH temp1 
AS (
    DELETE 
    FROM cust_sales_order_index returning * 
    ) 
INSERT INTO temp_cust_sales_order_index_temp (SELECT * FROM temp1);--) ORDER BY time_update 

にはどうすればいいだけ選択クエリを実行するか、少なくともJavaで同時に複数のクエリを実行するSQLクエリを制限することができます。

+1

Do not ...クエリを追加しますか? –

+1

私は使用します \t \t \t prepStmt = con.prepareStatement(selectStmt); \t \t \t ResultSet rs = prepStmt.executeQuery(); これは内部SQLクエリ – Abdqr92

+1

をどのようにあなたのJavaコードのように表示されますか? –

答えて

0

私は間違った方法で準備されたステートメントを使用していたと思います。準備されたステートメントで使用されるselectの例を次に示します。

String selectSQL = "SELECT USER_ID, USERNAME FROM DBUSER WHERE USER_ID = ?"; 
PreparedStatement preparedStatement = dbConnection.prepareStatement(selectSQL); 
preparedStatement.setInt(1, 1001); 
ResultSet rs = preparedStatement.executeQuery(selectSQL) 
0

私はこれをトランザクション駆動型のアプローチにすることをお勧めします。 接続を受け取ったら、自動コミットプロパティを無効にしてください(デフォルトでは間違っていないと有効になります)
各ステートメントが接続に渡された後にconnection.commit()を作成した後、変更がデータベースに送られます。

+0

私はそれが役に立つと思う、ありがとう – Abdqr92

関連する問題