반응형

mybatis 22

[mybatis] parameter 값 동시 전달

목차 mybatis에 데이터 전달 시 vo의 필드와 vo안의 list 동시 전달 javascript if (confirm("저장하시겠습니까?")) { dlbrList = []; $('#tab3Body tr').each(function() { var rowData = { 'exmnSn': $(this).find('#exmnSnId').val() } dlbrList.push(rowData); }); var paramData = { cmitNo: $("#cmitNoId").val(), mtgMngNo: $("#mtgMngNoId").val(), //vo안의 list명과 일치해야 함 dlbrList: dlbrList }; $.ajax({ url: '/save.do', method: 'POST', data: JS..

IT/development 2024.03.31

[mybatis] mybatis data binding (feat. vo)

최근에 알게된 사실인데 mybatis 사용 시 select하는 컬럼명과 vo 필드가 서로 카멜케이스, 스네이크케이스로 일치할 경우 자동으로 vo에 바인딩 하기 때문에 as를 따로 주지않아도 된다.--예시 쿼리SELECT USER_NAME FROM users--예시 VO@Datapublic class User { //이렇게 컬럼명의 카멜케이스로 된 경우는 자동 바인딩됨    private String userName;   }이걸 몰라서 그동안 아래처럼 컬럼마다 전부 AS를 달았었다..이제부터 생략해야지SELECT user_name as userName     , user_id as userId     , user_email as userEmail     --....  FROM USERS 혹 컬럼명과 vo..

IT/development 2024.03.17

[mybatis] 동적 쿼리 집계 쿼리 예시

조회구분에 따라 년 또는 월로 그룹핑해서 집계를 구하는 예시 SELECT DATE_FORMAT(FRST_REG_DT, '%Y') || '년' AS searchMon/*년*/ DATE_FORMAT(FRST_REG_DT, '%M') AS searchMon/* 월 */ DATE_FORMAT(FRST_REG_DT, '%M') AS searchMon/* 월 */ , COUNT(code) AS searchTotalCnt , COUNT(CASE WHEN code = '10' THEN 1 END) AS searchPassedCnt , COUNT(CASE WHEN code = '20' THEN 1 END) AS searchRejectedCnt FROM TEST_BOARD TO_CHAR(FRST_REG_DT, 'YYYY-..

IT/development 2024.02.25

[mybatis] list foreach delete

목차 화면에서 체크박스에 체크된 데이터 중 회원번호를 담아서 서버로 전달, delete query에서 IN절로 처리 view function deleteData() { if (confirm("삭제 하시겠습니까?")) { //선택된 row 배열 var selectedRows = []; //table의 td제일 앞에 checkbox란 id를 가진 엘리먼트에서 회원번호 가져옴 $("input[id='checkbox']:checked").each(function () { var rowData = { 'num': $(this).closest('tr').find('#num').text(), //회원번호 } selectedRows.push(rowData); }); $.ajax({ url: '/info/delete.d..

IT/development 2024.01.21

[mybatis] dynamic query template

나중에 내가 사용하기 위해 동적 쿼리 template을 기록한다. AND B.CODE IS NULL AND B.CODE IS NOT NULL AND C.CODE = 'A' AND C.CODE = 'D' AND C.CODE = 'P' AND B.CODE = #{entrprsSeCd} AND A.MBTLNUM LIKE '%' || #{mbtlnum} || '%' AND A.MBER_NM LIKE '%' || #{mberNm} || '%' 위 동적쿼리는 이렇게 작동한다. 를 통해 넘어온 parameter의 조건 일치여부에 따라 AND절을 동적으로 추가 또는 생성 예를 들면 다음과 같다. 1. mberGubun값만 'GNR'인 경우(일반회원만) //SELECT 절 생략 WHERE B.CODE IS NULL(원래..

IT/development 2023.12.24

[springBoot/thymeleaf] ajax 페이지네이션 sample(feat. study용)

목차 ddl(Oracle) /* 게시판 */ CREATE TABLE "BOARD_INFO" ("BOARD_NO" NUMBER NOT NULL ENABLE, "TITLE" VARCHAR2(50) NOT NULL ENABLE, "CONTENT" VARCHAR2(4000) NOT NULL ENABLE, "USER_ID" VARCHAR2(20) NOT NULL ENABLE, "USE_YN" CHAR(1) DEFAULT 'Y' NOT NULL ENABLE, "REG_DATE" DATE DEFAULT SYSDATE NOT NULL ENABLE, "MOD_DATE" DATE, CONSTRAINT "BOARD_INFO_PK" PRIMARY KEY ("BOARD_NO") ); COMMENT ON COLUMN BOARD_..

IT/development 2023.06.04

[mybatis] mybatis oracle merge into

mapper.xml SELECT BOARD_SNO_SEQ.NEXTVAL AS boardSno FROM DUAL /* 게시글 등록/수정 */ MERGE INTO BOARD_INFO A /* 비교 조건(boardSno가 같은지 비교) */ USING DUAL ON(A.BOARD_SNO = #{boardSno}) WHEN MATCHED THEN /* update(boardSno가 일치하면 update) */ UPDATE TITLE = #{title} , CONTENT = #{content} , MOD_DATE = SYSDATE WHERE BOARD_SNO = #{boardSno} /* insert(boardSno가 불일치 할 경우 insert) */ WHEN NOT MATCHED THEN INSERT ( BO..

IT/development 2023.06.03
반응형