분류 전체보기(200)
-
그리드 - Tabulator 엑셀 형식으로 다운로드하기
Tabulator 에서 현재 그리드의 데이터를 XLSX 형식으로 다운로드하는 API 는 다음과 같다. let tableObj = new Tabulator(...); function downloadXLS() { tableObj.download("xlsx", "파일명.xlsx"); } 기본 설정에서 Tabulator 에서는 통데이터를 그대로 출력해버리기 때문에 레코드가 1000 개를 넘어가면 다운로드 시간도 지연되며 더욱이 그많은 데이터를 다 받아야 하나 싶을 정도로 부담스러워진다. 다행히 이것을 해결하는 방법 중의 하나로 범위를 지정해서 다운로드할 수 있다. 현재 검색으로 찾아낸 방법인데 현재 선택된 행만 다운로드하는 것이다. 그런데 여기서 또 한 가지 문제점이 존재한다. selected 를 써서 현재 선..
2023.11.03 -
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