2016-06-30 3 views
0

getConnection 메서드를 사용하여 ConnectionManager 클래스를 만들었습니다. 이 getConnection 메서드는 호출 될 때마다 동일한 DB에 대한 새 DB 연결을 만듭니다. 그것은 DriverManager.getConnection()을 사용합니다. 이제 ConnectionManager를 사용하여 두 개의 다른 연결 객체를 만들었습니다.JDBC에서 두 개의 연결 개체를 사용하려고 시도했습니다

conn1 = ConnectionManager.getConnection() 
conn2 = ConnectionManager.getConnection() 

나는이

conn2.setAutoCommit(false); 
conn1.prepareStatment(somequery); 
// ....Excute a set of prepared statments using conn1 
conn2.commit(); // or conn2.rollback() 

두 개의 서로 다른 연결 개체, 트랜잭션 관리 및 문 실행을위한 다른 유효한 하나를 사용하지 지금 경우? 예인 경우 트랜잭션이 단일 오브젝트와 동일한 방식으로 작동합니까?

conn2에 대한 :

당신이 보내는 고유의 명령이 commit됩니다

아무것도 변경하지 않기 때문에 내가 OracleDB

을 사용하고 또한

,

+0

당신이 무엇을 의미합니까 - ** 유효합니까? ** 귀하의 질문을 명확히하십시오. –

답변

1

관리 및 기타 문의 실행에 유효한 두 개의 다른 연결 개체를 사용하고 있습니까? 그렇다면 트랜잭션이 단일 객체에 대해 작동하는 것과 동일한 방식으로 작동합니까?

아니요, 유효하지 않습니다. 트랜잭션은 단일 객체에서 작동하는 것과 같은 방식으로 작동하지 않습니다.

다른 Connection에 대한 설정에 영향을 미치지 않습니다 하나 Connection에 대해 수행 두 개의 서로 다른 Connections, 설정입니다 -이 두 단순히 동일한 데이터베이스를 가리키는 두 개의 관련이없는 Connection 개체입니다.

0

conn1conn2는 두 개의 서로 다른 거래, 두 개의 서로 다른 연결은 데이터에서 아무 것도 변경되지 않음

conn1 :

conn1의 사용자가 autocommit =true 인 경우 모든 명령의 보낸 사람이 dmbs으로 커밋됩니다. 아무도 변경 사항을 적용하지 않으므로 아무 일도 발생하지 않습니다.

+0

좀 더 정교 해 주시겠습니까 ?? 그리고 이것이 단일 연결 객체로 의도 한대로 작동하는지 여부를 최종 판정으로 알려주십시오. –

관련 문제