본문 바로가기

개발기록3

[MySql] Order by에서 Null 순서 정하기 0. 프롤로그 SQL에서 정렬을 할때 Null을 가장 뒤로 보내고 싶었다 MySql을 사용한 기준이니 다른 db에서는 적용이 안될지도,, 1. 그냥 order by 하면? nullable한 컬럼을 order by 했을때 - ASC 인 경우 Null이 가장 앞에 위치한다. - DESC인 경우 Null이 가장 뒤에 위치한다. 2. Null을 앞으로 보낼지 뒤로 보낼지 정해보자 1) ASC 인 경우 Null을 뒤로 보내고 싶을때 SELECT Col1, Col2, Col3 FROM SAMPLE ORDER BY Col1 is null, Col1 2) DESC인 경우 Null을 앞으로 보내고 싶을때 SELECT Col1, Col2, Col3 FROM SAMPLE ORDER BY Col1 is null DESC, C.. 2023. 1. 21.
Mybatis에서 반복되는 Update문 한번에 날리기 Mybatis에서 여러 개의 Update문을 한 번에 수행하는 방법기록 (MySql) 그전에 태그를 사용한 케이스는 크게 두 가지였고, 아래 케이스들은 쿼리문안에서의 반복이었기 때문에 문제없이 수행되었다. // 1. in절 ... AND a.auth IN #{item} ... // 2. insert문 INSERT INTO temp (temp_id , col1 , col2 , col3) VALUES (#{temp_id} , #{col1} , #{col2} , #{col3}) 내가 하고 싶은 건 update문 자체를 한 번에 여러 개 만들어 수행하는 것이었음 1. 일단 아래처럼 update문을 foreach로 반복해서 만들어서 수행해 보았다 UPDATE order m SET m.sort_order = #{r.. 2023. 1. 21.
Spring Boot에서 Request 이력 저장하기 클라이언트에서 호출한 Api 이력을 저장해야 하는 요구사항이 있었다. 시스템 관리 화면에서 호출하는 API의 호출 Url, 요청 파라미터, 요청 body를 저장해서 누가 어떤 이벤트를 발생시켰는지 이력을 확인할 수 있어야 했다. 시스템 관리 api 모든 요청에 대해서 저장해야했기 때문에 각 컨트롤러 내부가 아닌 공통 처리가 필요했다. Interceptor가 적용되어 있었기 때문에 Interceptor에서 호출 정보를 저장하면 되겠지 했는데 문제가 있었으니,, 인터셉터에서 바디를 꺼내서 저장 후 내부에서 다시 읽으려고 하면 에러가 팡팡 터졌다는 것 찾아보니 HttpServletRequest의 InputStream 은 한번 읽으면 다시 못 읽기 때문에 다시 읽으려고 하면 에러가 난다고 한다.. 구글링의 결과.. 2023. 1. 9.