Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JPA
- aws
- 알고리즘
- 함수
- JavaScript
- 넥사크로
- IntelliJ
- Vue
- Java
- 오라클
- 프로그래머스
- 방법
- 스프링
- GitHub
- mybatis
- oracle
- 생성
- 코틀린
- 자바
- 시큐리티
- Eclipse
- Git
- 에러
- 쿼리
- error
- kotlin
- jquery
- Security
- db
- Spring
Archives
- Today
- Total
송민준의 개발노트
Mybatis 동적 쿼리(like 사용 및 가변 컬럼 사용) 본문
가변컬럼
#{값} 과 ${값}의 차이
#{값} : ''을 포함한 값을 반환 ex) 값이 field -> 'field'
${값} : 값만 반환 ex) 값이 field -> field
컬럼을 변경하고 싶다면 ${값}을 쓰면된다. (아래 Like사용법에 예제 있음)
LIKE 사용법
기본적으로 ibatis인가 mybatis인가에 따라 문법이 다르고 DB마다 또 문법이 다르다.
가장 대표적인 oracle과 mysql의 mybatis 버전 사용법에 대해서 기록하겠다.
Oracle
where ${field} like '%'||#{text}||'%'
MySql
where ${field} like CONCAT('%',#{text},'%')
마이 바티스에서 if, choose 사용법
<select id = "getSearchList" parameterType="map" resultType="member">
select *
from (select rownum rnum, b.*
from (selecct * from member
where id != 'admin'
<if test="search_field!=null">
and
<choose>
<when test="search_field=='id'">id</when>
<when test="search_field=='name'">name</when>
<when test="search_field=='age'">age</when>
<when test="search_field=='gender'">gender</when>
</choose>
like #{search_word}
</if>
order by id) b
)
</select>
* Element type "result" must be followed by either attribute specifications, ">" or "/>". 에러
<select id="count" parameterType="java.util.Map"resultType="int">
위 코드를 보면 resultType 앞이 공백이 없다. 아래처럼 띄워주면 해결됨
<select id="count" parameterType="java.util.Map" resultType="int">
'DB' 카테고리의 다른 글
테이블의 용량 초기화 (0) | 2020.06.01 |
---|---|
Nologging (0) | 2020.06.01 |
외래키 제약조건 걸린 테이블 삭제 방법 (0) | 2019.12.24 |
간단한 프로시저 예제 (0) | 2019.11.18 |
DB 계층구조(level) (0) | 2019.10.31 |