2010-08-04 8 views

답변

4

"무한 루프"? 죄송합니다. 이것은 나쁜 생각처럼 들립니다.

반복문에 여러 번 준비된 문을 호출하는 것이 좋습니다. 그러나 암시 적으로 그것은 명확한 시작과 끝이있는 루프입니다.

"무한 루프"에 대해 의심 스럽습니다. 그것은 당신이 살아있는 어떤 데이터베이스 이벤트에 응답을 유지하려는 리스너처럼 들립니다.

답변은 "괜찮습니다"는 맞지만, 현재 수행중인 작업에 대해 자세히 설명하는 것이 흥미로울 수 있습니다. 코멘트 후

업데이트 :

나는 이벤트를 듣고 아톰 RSS 서버가있는 것입니다. 요청이 들어 왔을 때, 나는 RSS 청취자에게 연결 풀에서 연결을 얻을 수있는 서비스에 넘기고, 트랜잭션을 시작하고, 메소드 범위에서 준비된 명령문을 작성하고, 메시지를 삽입하고, 준비된 명령문을 닫습니다 메서드 범위 내의 finally 블록에서 트랜잭션을 커밋하고 연결을 풀로 반환합니다.

JDBC 드라이버 또는 데이터베이스는 PreparedStatements를 캐시하므로 비효율적이지 않습니다. 하나에 매달릴 필요가 없습니다.

무한 루프가 없습니다. 그렇게 쓰레딩 문제는 없습니다.

+0

+1, 나는 그 중요한 지점을 놓쳤다 – Bozho

+0

내 프로그램은 RSS 채널에서 데이터를 수집하고 데이터베이스에 항목을 넣습니다. 나는이 작업을 위해 사건 모델을 구축하는 것이 불가능하다고 생각한다. 하지만 재미 있습니다 : 데이터베이스 이벤트를 기반으로 이벤트 모델을 만드는 것이 어떻게 가능합니까? 이 라이브러리가 있습니까? 그것은 impoetant면 스칼라 언어에 programm을 쓰고 있어요. –

+0

매우 흥미 롭습니다. 내 프로젝트에서 Scala 배우를 사용하여이 작업을 수행 할 것입니다. –

4

준비된 문장의 요점은 한 번 준비하고 여러 번 사용하는 것입니다.

6

예, 그렇습니다. PreparedStatements를 사용할 때주의해야 할 점 중 하나입니다.이 문은 한 번 컴파일되고 여러 번 실행될 수 있습니다.

여러 스레드에서 동일한 명령문을 호출하지 않는 한 예상대로 작동합니다. 여러 스레드에서 동일한 명령문을 호출하면 이러한 오브젝트가 이러한 조건에서 스레드 안전성이 보장되지 않으므로 문제가 발생할 수 있습니다.

관련 문제