Where
-
이번 포스트에서는 MyBatis가 가진 멋진 기능중 하나인 동적 쿼리 작성에 대해 살펴보자. 동적 쿼리는 상황에 따라 분기 처리를 통해 SQL을 동적으로 만드는 것이다.문자열 대체를 통한 쿼리의 재구성 ${}를 이용한 쿼리 작성이제까지 SQL을 작성하면서 사용했던 플레이스 홀더로 #을 사용했었는데 $도 사용할 수 있다. 이 둘의 차이를 살펴보자.구분#{ } : 바인딩 플레이스 홀더 $ { }: 문자열 치환 플레이스 홀더용도값 바인딩문자열 치환변경 가능성값만 대체 가능테이블명, 컬럼명 등 구조까지 변경 가능처리 방식PreparedStatement 사용Statement 사용SQL 인젝션 공격안전취약${}는 SQL 삽입 공격이 발생할 수 있기 때문에 사용을 지양하는 것이 좋지만 쿼리의 구조를 변경할 수 있다는..
[MyBatis] 04. 동적 쿼리이번 포스트에서는 MyBatis가 가진 멋진 기능중 하나인 동적 쿼리 작성에 대해 살펴보자. 동적 쿼리는 상황에 따라 분기 처리를 통해 SQL을 동적으로 만드는 것이다.문자열 대체를 통한 쿼리의 재구성 ${}를 이용한 쿼리 작성이제까지 SQL을 작성하면서 사용했던 플레이스 홀더로 #을 사용했었는데 $도 사용할 수 있다. 이 둘의 차이를 살펴보자.구분#{ } : 바인딩 플레이스 홀더 $ { }: 문자열 치환 플레이스 홀더용도값 바인딩문자열 치환변경 가능성값만 대체 가능테이블명, 컬럼명 등 구조까지 변경 가능처리 방식PreparedStatement 사용Statement 사용SQL 인젝션 공격안전취약${}는 SQL 삽입 공격이 발생할 수 있기 때문에 사용을 지양하는 것이 좋지만 쿼리의 구조를 변경할 수 있다는..
2023.06.18 -
spock의 블록 Spock은 블록을 통해서 할 일들을 정리한다. 기본 블록은 아래와 같다. given / setup 테스트에 필요한 객체나 환경을 준비하는 블록으로 반드시 다른 블록들 보다 먼저 있어야 한다. 키워드 자체는 생략가능하다. when 테스트 하고 싶은 상황을 만드는 영역으로 코드를 실행하는 영역이다. then 테스트 결과를 검증하는 블록으로 여기에 작성된 코드 한줄 한줄이 모두 assert에 해당하는 문장이다. expect when과 then이 합쳐진 형태로 작은 테스트 작성 시 유용하다. cleanup 필요 시 setup의 자원을 정리한다. where 일부 데이터만 바꿔가면서 여러 번 테스틀 할 수 있게 도와주는 영역이다. given / when / then given / when / t..
[spock]기본 사용법spock의 블록 Spock은 블록을 통해서 할 일들을 정리한다. 기본 블록은 아래와 같다. given / setup 테스트에 필요한 객체나 환경을 준비하는 블록으로 반드시 다른 블록들 보다 먼저 있어야 한다. 키워드 자체는 생략가능하다. when 테스트 하고 싶은 상황을 만드는 영역으로 코드를 실행하는 영역이다. then 테스트 결과를 검증하는 블록으로 여기에 작성된 코드 한줄 한줄이 모두 assert에 해당하는 문장이다. expect when과 then이 합쳐진 형태로 작은 테스트 작성 시 유용하다. cleanup 필요 시 setup의 자원을 정리한다. where 일부 데이터만 바꿔가면서 여러 번 테스틀 할 수 있게 도와주는 영역이다. given / when / then given / when / t..
2021.02.10