목록분류 전체보기 (34)
Developer N
GROUP_CONCAT() n개의 row로 결과가 출력되는 쿼리를 한줄의 row로 표현하고 싶을 때가 있다. 이때 GROUP_CONCAT을 사용하면 된다. 쿼리 : select userId from userInfo 결과 : userId aaa1 aaa1 ccc3 bbb2 위 쿼리의 결과가 표와 같다고 할 때 네개의 로우를 하나의 로우로 표현하고자 한다면 아래와 같이 쿼리를 작성하면 된다. 쿼리 : select GROUP_CONCAT(userId SEPARATOR '|') as userId from userInfo 결과 : userId aaa1|aaa1|ccc3|bbb2 위의 표처럼 하나의 row에 구분자를 기준으로 모든 row가 붙어서 출력된다. SEPARATOR을 사용하여 구분자를 원하는 대로 변경할 ..
이벤트 버블링 우리가 원하는 것은 어떤 요소를 클릭했을 때 해당 요소에만 이벤트가 적용되는 것이지만 실제로는 그 요소를 포함하는 부모 요소에도 이벤트가 전달된다. 이를 거품이 커지는 것에 비유해 이벤트 버블링(event bubbling)이라고 한다. test 위 코드의 경우 자식 요소인 를 클릭하면 부모 요소인 에게도 클릭 이벤트가 전달된다. 이벤트 버블링의 경우 자식 요소를 포함하지 않는 부모 요소의 영역을 클릭하면 이벤트 핸들러가 실해되지 않는다. 만약 자식 요소를 클릭했을 때 부모 요소의 이벤트 핸들러를 실행하지 않고자 한다면 두가지 방법을 사용하면 된다. 1. 부모 요소의 이벤트 핸들러에서 this와 event.target을 이용한다. $('#parent').click(function(event)..
Could not set parameter at position 1 (values was ~) : 스프링 MyBatis에서 발생하는 위 에러는 주석으로 #{파라미터}를 감쌌을 경우 발생한다. 해결 방법은 간단하다. 주석 내에서 해당 파라미터를 제외하거나 또는 주석을 풀어주면 된다. select * from person p where 1=1 and p.id = #{id} -- and p.age = #{age} -- #{파라미터}를 주석으로 감쌀 경우 -> 에러 발생 and p.name = #{name} -------------------------------------------- -- 해결방법 1 -> 주석 부분 삭제 select * from person p where 1=1 and p.id = #{id..
하나의 MyBatis 에서 여러개의 쿼리를 실행시키고 싶을 때가 있다. 이때 DB연결 부분에서 allowMultiQueries=true 를 붙여주면 된다. jdbc:mysql://localhost:3306/test?allowMultiQueries=true 아래는 이를 이용해 한번에 여러개의 insert 쿼리를 실행하는 MyBatis 코드다. insert into testTable2( id, seq, age, name ) select tt.id, pt.seq, #{age}, #{name} from testTable tt inner join personTable pt on pt.age = tt.age where tt.age = #{age} and tt.deleted_at is null order by pt...
iterate문 태그 ( ibatis : MyBatis의 옛 버전 ) property : 파라미터명 prepend : 쿼리로 쓰일 문자 open : 구문이 시작될 때 삽입할 문자열 close : 구문이 종료될 때 삽입할 문자열 conjunction : 반복되는 사이에 출력할 문자열 foreach문 태그 collection : 전달받은 인자. List or Array 형태만 가능 item : 전달받은 인자값을 alias명으로 대체 open : 구문이 시작될 때 삽입할 문자열 close : 구문이 종료될 때 삽입할 문자열 separator : 반복되는 사이에 출력할 문자열 index : 반복되는 구문 번호. 0부터 순차적으로 증가 update testTable set..