2012-01-19 3 views
0

JDBC 서버를 통해 MySQL 서버와 통신하는 기본 MySQL 서버 행에 대한 메타 데이터를 유지해야하는 응용 프로그램을 작성하고 있습니다.업데이트/삭제 된 행 찾기 JDBC (ResultSet)

효과적으로 각 클라이언트에는 고유 한 ID가 있으며 Java 응용 프로그램은 행을 수정 한 마지막 클라이언트의 uuid를 각 행에 저장해야합니다.

지금까지 행이 삽입되면 기본 키가 참조하는 메타 데이터 테이블에 슬롯을 할당합니다.

이 작업을 수행하는 유일한 방법은 테이블에서 (업데이트/삭제와 동일한 조건으로) 선택을 수행하는 것입니다. 그러나 이는 주어진 쿼리에 대해 실제로 작업을 두 배로 늘리는 것입니다. 더 좋은 아이디어가 있습니까, 아니면 그것을 할 수있는 JDBC 방법으로 알려져 있습니까?

감사

답변

2

자바에서 SQL에서 데이터를 업데이트하는 두 가지 방법이 있습니다

  1. 당신이하고있는 자바의 모든 논리를 유지,이 코드에서 간단하고 모든 논리 테이블을 유지
  2. 변경이 발생할 때 다른 테이블에 대한 업데이트를 수행하려면 MySQL에 저장 프로 시저를 작성하십시오. 이 경로를 따르면 자바 코드는 간단하지만 테이블 논리는 SQL에서 복잡하다.

차이점을 분리하고 Java에서 일부 논리와 SQL에서 일부 논리를 사용하면 안된다. 자바보다 SQL에서 저장 프로 시저 코드를 수정하고 디버그하는 것이 훨씬 어렵 기 때문에 접근 방식을 고수하는 것이 좋습니다.

추신 : 저는이 두 가지 방식으로 Java에서 논리를 유지하는 것이 훨씬 쉽습니다.

+0

맞아요. 어쨌든 Java 로직을 유지할 것이지만, 모든 "update * where x ="에 대해, "select * where x"를 수행해야하고 preexisintg가 있는지 궁금해하고 있습니다. 더 효율적인 방법으로 그 일을 수행 한 jdbc 함수 – user1018513

+0

JDBC가 원하는 기능을 제공한다고 생각하지 않습니다. JDBC 코드는 쿼리를 보내고 행과 오류를 수신하는 데 도움이되는 몇 가지 유틸리티가있는 SQL 연결에 대한 단순한 래퍼입니다. –