myBatis에서 ?(물음표) 문자 사용하기myBatis를 사용하는 프로젝트를 진행하다보면, 물음표를 문자로써 사용해야 하는데, 해당 부분에 parameter로 들고온 값이 들어가는 경우가 있습니다. 이럴 경우, CHR(63)을 '?' 대신 써주면 됩니다.'&' 역시 마찬가지로 문자로 사용하고 싶다면 CHR(38)을 대신 써주면 문자로 사용이 가능합니다. 사용 예시만약, '?'를 그냥 쿼리문에 넣게되면 하기와 같은 결과를 도출하게 됩니다.// 만약, 아래와 같이 사용하게 되면, parameterType으로 지정한 값들이 들어갈 수 있습니다// 필자의 경우는, '?'로 사용해도 쿼리는 제대로 돌아갔지만, jdbc.sqlonly에 의해 출력된 쿼리문에는 '?' 위치에 paramter로 지정한 값이 들어가있..
mybatis

시작하기 전에하기 포스팅은 "스프링부트 시작하기(김인우 저)" 책을 공부하며 적은 포스팅입니다. 이번 포스팅에서는 게시판 구현 전, 의존성 주입 및 데이터베이스 연결을 진행하고자 합니다.SpringBoot 프로젝트 생성하기File > New > Other...을 클릭하여 Spring Starter Project 프로젝트를 생성해보겠습니다. 기존에 SpringBoot 프로젝트 생성과 관련해 설명한 글이 있기 때문에 자세히 설명하지 않고 넘어가겠습니다.위 사진과 같이 의존성 설정이 필요합니다. 각각 검색을 통해 필요한 라이브러리를 선택하면 됩니다. 프로젝트 생성한 후, Gradle이 라이브러리를 받는데 시간이 조금 걸릴 수 있습니다. 기존에 프로젝트 생성 시 체크했던 의존성을 포함하여 게시판 프로젝트에서 사..
dao.xml 파일 내에 #을 쓰는 경우 SELECT TIME FROM SUMMARY_1HOUR WHERE 1=1 AND TIME >= #{ queryMap.startDate } AND TIME < #{ queryMap.endDate } ... #{ value }에는 bind된 값(value)이 들어가게 됩니다. parameter가 String 형태로 들어와 자동적으로 'parameter' 형태가 됩니다. 내부적으로는, preparedStatement 객체에서 #{ value }에 들어갈 파라미터 값을 set 하여 사용됩니다. 즉, DB에서 변수를 bind하여 #{ value } 값이 달라져도 동일한 쿼리로 인식하게 됩니다(쿼리의 컴파일된 내용 재사용 가능). 쿼리 주입을 예방할 수 있어 보안 측면에서 ..