2013-08-24 5 views
0

데이터베이스와 상호 작용하는 응용 프로그램을 작성 중입니다. PreparedStatement을 사용하여 쿼리를 실행하려고하지만 수행해야하는 쿼리 수가 많아서 앞으로 증가 할 수 있습니다.
특정 쿼리를 실행하기위한 함수를 작성하고 더 나은 방법을 생각할 수 없다는 것을 알고 있습니다.데이터베이스에 대한 쿼리 클래스 설계

SELECT * 
FROM TABLE_NAME 
WHERE TABLE_NAME.ATTRIBUTE_NAME = ? 

SELECT * 
FROM TABLE_NAME 
WHERE TABLE_NAME.ATTRIBUTE_NAME = ? 
     AND TABLE_NAME.ATTRIBUTE_NAME1 = ? 

나는 모두를 실행하는 독립적 인 기능을 쓰기 (하나 개의 쿼리를 수행하는 방법에 an example)를해야하지만 :

예를 들어 쿼리가 될 수 있습니다 나는 이것이 이것을 행하는 모듈 방식이 아니라는 것을 알고있다.

더 좋은 방법은 없나요?

+0

왜 Spring JDBC 지원을 사용하지 않고 단순히 DAO/Service를 사용하여 쿼리를 수행하지 않습니까? DAO/서비스는 단지 패턴 일 뿐이며 봄 컨텍스트 외부에서는 사용할 수 있습니다. –

+0

@bellabax 저는 이것에 대해 알지 못했습니다. 저는 과거에'jdbc'에서만 작업했습니다. 다른 방법이 있다면 자세히 설명해주십시오 (체크 아웃하겠습니다). –

답변

0

정말 좋은 해결책은 JOOQ 라이브러리를 사용할 수 있습니다.
그냥

  • 는 생성 된 데이터베이스 스키마 메타 모델을 기반으로 쿼리를 만드는 데이터베이스에 연결
  • 사용 유창하게 API를 데이터베이스 스키마
  • 을 만들

(당신은 또한 간단하게 사용할 수 있습니다 SQL-executor는 here와 같은)
완료. 이것은 당신의 도서관입니다.

, 프로그램 컨텍스트에서 분리하는 후

interface MyOperations { 
    public int getUserById(int userID); 
} 

class MyOperationsImpl implements MyOperations { 

    public MyOperationsImpl(Connection connection) {...} 

    int getUserById(int userID) { 
    DSLContext create = DSL.using(this.connection, SQLDialect.MYSQL); 
    create.select().from(USERS).where(USERS.ID.equal(userID)); 
    } 
} 

이 귀하의 질문에 대답하거나 어떤 식 으로든 도움이 될 수 있습니다와 같은 인터페이스를 만들?