본문 바로가기

반응형

분류 전체보기

(41)
RestTemplate 을 이용해서 HTTP통신하기. - 나의 상황 : 외부 솔루션인 서버에 요청을 보내야해서 http 통신이 필요함. RestTemplate 이후에 나온 WebClient 사용을 지향해야한다는 것을 알지만.. 중간 투입된 프로젝트고.. 기존에 RestTemplate 을 사용한 파일만 있길래 이걸 사용했음. 그저 기록을 남기려고 그냥 글로 써둠.. -사용 // POST 방식인경우 HttpHeaders headers = new HttpHeaders(); headers.set("Content-Type", "application/json"); HttpEntity entity = new HttpEntity(requestBody, headers); // resquestBody 는 내가 api에 전달할 데이터를 json형식의 string 으로 위에서 ..
[통계 쿼리] 재귀함수를 이용한 시간대별, 요일별, 일별, 월별 집계 쿼리 -나의 상황 : 통계 집계 화면에서 시간대별/요일별/일별/월별 테이블을 보여줘야함. 집계 테이블에 기준 값 별로 데이터가 모두 잘 들어가있으면 그대로 보여주면 되는데..데이터가 있을때만 집계테이블에 넣어주고 있어서 화면에 그대로 뿌려줄 수 없어서 아래 방법을 이용함.. - 시간대별 WITH RECURSIVE TIME_TB AS ( SELECT 0 AS TIME UNION ALL SELECT TIME + 1 FROM TIME_TB WHERE TIME < 23 ) SELECT CONCAT(LPAD(TIME_TB.TIME, 2, 0), ' ~ ', LPAD(TIME_TB.TIME+1, 2, 0))AS TIME , TIME_TB.TIME AS TIME2 , IFNULL(B.합1, 0) AS 합1 , IFNULL..
[MySQL] on duplicate key update (키 값 여부에 따른 insert / update) - 나의 상황 : 데이터 저장 시, 같은 KEY 값으로 등록된 데이터가 있으면 update / 없으면 insert 를 해줘야했음. 값이 있는지 확인 후 결과에 따라 insert or update 를 해도 되지만.. 더 간단하게 할 수 있는 방법이 있음! - 해결 : on duplicate key update 를 하면 간단하게 해결 INSERT INTO TEST_TABLE ( KEY_COL , COL_1 , COL_2 , RGST_DTM ) VALUES ( #{keyColVal} , #{col1Val} , #{col2Val} , NOW() ) ON DUPLICATE KEY UPDATE COL_1 = #{col1Val} , COL_2 = #{col1Val} , LAST_UPDT_DTM = NOW()
SheetJS 를 이용하여 xlsx 데이터 를 json 으로 만들기 - 나의 상황 : 화면에서 엑셀을 업로드 받아 상품 목록 데이터를 읽어 db에 저장해야했다. 백엔드에서 처리해도 되는데 javascript 로도 처리할 수 있다고하여 도전. 1. 라이브러리 추가. 2. script 나는 file 의 change 이벤트로 처리했다. $("#file").on("change", (event)=>{ let input = event.target; let reader = new FileReader(); let rows; reader.onload = async function () { let data = reader.result; let workBook = XLSX.read(data, { type: 'binary'}); workBook.SheetNames.forEach(functio..
boolean 변수 바인딩 에러. - 나의 상황 js에서 isApply 값을 넘겨줬는데 컨트롤러에서 해당 변수만 값이 넘어오지 않음. -해결 변수명 앞에 붙인 is 를 떼주면 잘 넘어온다. - 참고(원인도 아래에 출처에 나와있음) https://jungguji.github.io/2020/12/31/RequestBody-Annotation-%EC%82%AC%EC%9A%A9-%EC%8B%9C-boolean-%EB%B3%80%EC%88%98-%EB%B0%94%EC%9D%B8%EB%94%A9-%EC%97%90%EB%9F%AC/
Javascript 배열, 배열 함수 정리 - 내가 매번 헷갈려서 나중에 찾아보려고 정리.. - 배열 선언 : 두가지 let arr = new Array(); let arr = []; - for of, forEach : 배열의 값 하나씩 꺼내기 let items = [1, 2, 3] for(let item of items){ console.log(item); } // 1 // 2 // 3 items.forEach(function(item, index, array)){ // = items.forEach((item, index, array) => {}); console.log(item, index); }); // 1 0 // 2 1 // 3 2 - push : 배열 젤 뒤에 값 추가 - pop : 배열 젤 뒤에 값 삭제 - unshift : 배열 젤..
[MyBatis] Insert 후 Key 값 받아오기 (selectKey) - 나의 상황 : 마스터 테이블이 있고, 히스토리 테이블이 있다. 등록요청이 오면, 마스터 테이블에 insert 하고 그 키 값을 받아다가 히스토리 테이블에도 insert 를 시켜주어야한다. (마스터 테이블의 키 컬럼은 auto_increment 로 자동으로 넣어주고 있다.) 처음엔 마스터 테이블 등록 -> 마스터 테이블에서 등록된 키 값 조회 -> 히스토리 테이블 등록 이렇게 생각했는데.. 뭔가 계속 마음에 안들고.. 다른 방법이 있을 거 같고.. 해서 찾다가 알게 된 방법 selectKey! selectKey 를 사용하면 insert 요청 시 보낸 객체에 insert 후 생성된 키 값이 셋팅되어진다! - 사용법 1. MyBatis 쿼리에 useGeneratedKeys, keyProperty 작성! k..
Eclipse 플러그인 MyBatipse 추천! 난 그동안 mapper 나 service 단에서 mybatis의 xml 쿼리를 찾아가기 위해서 아래 캡쳐 처럼 쿼리의 id 값을 검색해서.. 검색 결과에서 id 값을 찾아서... 등 복잡한 과정으로 찾아갔다...세상 불편해.. 그런데.. 한방에 찾아갈 수 있는 플러그인을 알게되어서 기록용으로 쓴다!!! 내 기준 혁명!! 바로 MyBatipse! 마켓플레이스에서 설치가능하다. 위 플러그인을 설치하고 나면, 이제 service 나 mapper 에서 ctrl + 마우스가져다대기 만 하면 바로 쿼리로 이동할 수 있는 선택지가 뜬다. 선택하면 바로 xml 파일로 이동! 반대로 xml 파일에서도 java 소스로 이동가능하다. 다른 기능들도 많은 것 같은데 아래 깃헙을 참고하시길 https://github.com/m..

반응형