2013-08-30 6 views
0

Java Bean에서 null 값을 확인하지 않고 쿼리 문자열을 준비하는 더 좋은 방법이 있는지 궁금합니다.java bean에서 쿼리 문자열 준비

나는 값과 주소 값을 가지고 있겠지로

public class Employee{ 

    private String name; 

    private String address; 

    //setters and getters i am not mention here 

    } 

가정하자 걸릴 이름 null.I 쿼리 문자열을 아래와 같이 준비하려는 의미

특성을 가진 자바 빈 아래에 있습니다

update table test where name='value from property' where xxx=? 

안부,

chakri

+0

나는 스스로를 할 필요가 없도록 Hibernate와 같은 ORM을 사용할 것을 권장합니다. – Marcelo

+0

맞습니다. Marcelo.But에는 이미 2 개의 쿼리 만 실행하는 구성 요소가 있습니다. 여기서는 모든 최대 절전 모드가 필요합니다. – user2680017

답변

1

SQL을 생성하기 위해 빌더 패턴을 사용하십시오. 마술은 없습니다. 삽입, 업데이트, 선택 등을 구성하기 위해 각 빌더 클래스를 작성해야합니다. 그러나 결국에는 멋진 캡슐화가 적용됩니다. 사용 방법은 다음과 같습니다.

String sql = new EmployeeUpdateBuilder() 
    .whereName("Jeff") 
    .valueAddress("123 Main Street") 
    .build(); 

구현할 코드는 간단하지만 실제로는 약간 바쁜 작업이지만 결과는 좋습니다. 다른 오브젝트 유형에 대해 이들을 작성하려고한다면 다양한 SQL 명령 유형 (삽입, 선택 등)마다 기본 클래스를 많이 고려해야합니다.

다른 옵션은 빌더를 일반화하는 것입니다. 당신은 이런 식으로 끝날 것입니다.

+0

Jeffery, 모든 속성 내가 null 및 빈 문자열 check.i 할 필요가 없습니다. 어떤 속성을 null 또는 비어있는 데없는 .i 쿼리 문자열을 작성하는 것이 좋습니다. – user2680017

+0

이므로 쿼리 빌더에 체크하십시오. 마술은 없어요. 뭔가 검사를해야합니다. –

+0

나는 당신과 동의한다. – user2680017

0

동적으로 쿼리를 실행하는 방법이 있습니다. 먼저 null 값을 확인할 수 있으며 해당 값에 따라 db에서 실행되는 쿼리를 선택할 수 있습니다.

+0

죄송합니다. 무슨 뜻인지 이해하지 못합니다. – user2680017

+0

나는 속성 이름과 그 값에 따라 동적으로 쿼리를 준비하고 싶다. – user2680017

+1

Vimal Bera의 대답에 대한 나의 해석은 따옴표를 사용하여 xxx와 비교할 값을 문자열에 배치하면 최악의 경우 유효하지 않은 SQL 대신 빈 문자열을 데이터베이스에 보냅니다. –