2017-03-14 6 views
0

레코드 목록을 얻기 위해 준비된 명령문에 select 쿼리를 전달하고 있습니다. 문제는 내가 테이블을 삽입하거나 자르는 쿼리를 추가하면 준비된 명령문이 모든 쿼리를 실행한다는 것입니다. 예를한 번에 하나의 쿼리를 실행하기 위해 준비된 명령문을 제한합니다.

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 

은 어떻게 SQL 쿼리만을 선택 쿼리를 실행하거나 적어도 자바에서 한 번에 하나의 쿼리를 실행을 제한 할 수 있습니다.

+1

Do not ... 쿼리를 추가 하시겠습니까 ?? –

+1

제가 사용합니다 \t \t \t prepStmt = con.prepareStatement (selectStmt); \t \t \t ResultSet rs = prepStmt.executeQuery(); 이 코드는 내부 SQL 쿼리 – Abdqr92

+1

을 어떻게 실행합니까? –

답변

0

나는 내가 준비된 문장을 잘못된 방법으로 사용하고 있었다고 생각합니다. 여기에 준비된 문장에서 사용되는 선택의 예가있다.

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

나는 트랜잭션 기반 접근 방식을 만드는 것이 좋은 선택이라고 생각합니다. 연결을 수신하면 autocommit 속성을 비활성화하십시오 (기본적으로 잘못 입력하지 않은 경우 활성화 함).
그런 다음 각 문이 연결로 전달 된 후 connection.commit()으로 변경 한 다음 변경 사항이 데이터베이스로 전달됩니다.

+0

도움이됩니다. 감사합니다. – Abdqr92