전체 글(216)
-
MYBATIS - INSERT list
SQL 원형 : INSERT INTO STUDENT (STD_SEQ, STD_NAME, DEPT) VALUES (001, '영호', '수학과'), (002, '영수', '물리학과'), (003, '변식', '컴퓨터공학과'), . . . INSERT 의 경우, VALUES 뒤에 따라오는 (속성값) 레코드가 연속으로 나열하는 방식이기 때문에 VALUES 뒤에 를 넣는다. separator (구분자)는 ',' 임을 명심하기 바란다. INSERT INTO STUDENT_TBL (ID, NAME) VALUES (#{element.id}, #{element.name})
2023.11.03 -
java.net.URLDecoder
JS단에서 JSON.stringify() 에 의해 문자열화된 키, 값 쌍을 JSP Controller 로 받을 때 개발자의 의도와 상관없이 %20Key1=%??Value1&Key2=Value2& ... 처럼 사이사이에 %20 같은 Escape 문자가 들어 있을 때가 있다. 이것은 UTF-8 (유니코드 구현 방식 중 하나) 환경에서 긴 한글 텍스트가 포함되어 있을 때 발생한다. 이것은 Java 에서 URLDecoder.decode(문자열, "utf-8"); 을 써서 인코딩 이전의 상태로 풀어 낼 수 있다.
2023.10.30 -
MYBATIS - UPDATE list
SQL 원형: UPDATE PET_TBL SET NAME = '둘리' WHERE ID = 'Pet001'; UPDATE PET_TBL SET NAME = '도너' WHERE ID = 'Pet002'; UPDATE PET_TBL SET NAME = '또치' WHERE ID = 'Pet003'; . . . INSERT 와 달리 UPDATE 문을 여러번 실행하는 방식이기 때문에 쿼리 사이에 반복을 처리하는 foreach 가 올 수 없다. 대신 쿼리문을 로 감싸며 그것의 바깥을 BEGIN, END 로 한 번 더 감싸서 처리해야 한다. 구분자는 마침표를 의미하는 ';' (세미콜론) 으로 지정해야 한다. BEGIN UPDATE TEST_TBL SET NAME = #{element.name} WHERE ID = #{..
2023.10.30 -
sybase 사이베이스 기초
주제 명령 및 쿼리 설명 또는 실행결과 관리자 계정 sa 데이터베이스 조회 sp_helpdb 현재 접속 중인 서버의 버전 조회 select @@version; Adaptive Server Enterprise/16.0 SP04 PL04/EBF 30648 SMP/P/AMD64/Windows 2012 R2/ase160sp04pl04x/0/64-bit/FBO/Tue Feb 14 19:49:11 2023 오라클의 LISTAGG 에 해당하는 함수 LIST SQL Error [14216] [S1000]: Function 'LIST' not found. ASE 버전에서는 지원되지 않음. sybase 참고 URL : https://infocenter.sybase.com/help/index.jsp?topic=/com.sy..
2023.10.15 -
$(document).on('change', <select>, function() {...}
호랑이 담배 먹던 시절에 java Swing 으로 UX 만들 때도 이벤트 리스너를 지우고 선택상자를 초기화한 후에 다시 이벤트 걸고... 많이 했던 짓인데, SI 에서 촉박한 시간에 개발하려다가 이벤트 꼬이고 짱구는 안돌아가고 아휴!! 그래서 재현해봤다. spring, ajax 다 빼고 단순히 HTML + js 로. 이게 핵심이니까. (jquery 는 넣었다.) 이게 어떤 상황이냐면, 그리드의 특정 ROW 를 더블클릭했을 때 해당 데이터를 수정하기 위한 다이얼로그를 띄울 때 기존 설정값이 SELECT 박스에서 선택되도록 하는 부분이다.
2023.09.24 -
주 번호로 해당 주의 시작일 ~ 종료일 범위 구하기
과연 AI 검색엔진의 시대인가! 구글에서 주차로 검색해도 안나오고 죄다 차량 주차에 관한 내용 뿐이다. 다행히 문장을 만들어서 AI 검색엔진에 넣으니 f(입력) = 출력 공식이 성립했다. 아래는 AI 검색결과에 문자열 처리만 넣은 것이다. /** 주 번호로 해당 주의 시작일 ~ 종료일 구하기 필요한 인자 : 시작년, 주 번호(주차) */ function getRangeOfWeek(year, week) { let firstDayOfYear = new Date(year, 0, 1); let firstDayOfWeek = new Date(firstDayOfYear.getTime() + ((week - 1) * 7 * 24 * 60 * 60 * 1000)); let lastDayOfWeek = new Date(..
2023.09.17