분류 전체보기 44

[Ajax] Ajax 사용하여 목록 테이블의 특정 데이터만 변경하기

구현하려는 기능은 다음과 같다. (1) 목록에는, 이전에 사용자가 등록한 주소를 보여준다.(2) 만약 현재 살고 있는 주소와 다르다면,현주소 일치여부의 라디오버튼 '불일치'를 클릭 후, 주소 입력 팝업창에서 현재 살고 있는 주소를 입력한다.(3) 주소를 저장하면 페이지 새로고침이 없이(Ajax로 구현하기 때문에) 현주소로 변경된다. (표 1-1에서 1-2로 변경) BEFORE) 표 1-1 주소 입력 팝업창) 주소를 새로 입력하는 팝업창   AFTER) 표 1-2   ------------------------------------------------------------------------>> 기능구현 시작  1. List.jsp에서 우선 일치와 불일치를 체크할 수 있는 라디오 버튼을 만들어준다. 그..

05. etc 2024.06.27

[xml] 오라클 CLOB 데이터 화면에 뿌려주기

오라클의 CLOB 데이터형은 보통 글자 수가 너무 길 때 사용한다.select 쿼리문을 사용하는 화면을 만들 때,(예를 들어) long_text(컬럼명)라는 CLOB 데이터를 가져왔다. Select long_text from table;을 했는데, 화면에는 ‘Oracle.~.~…‘이라는 문구만 떴다. 알고보니 자바에서는 varchar의 형태로 가져오므로 DB와 서로 데이터형이 안맞아서 그런 것이었다. 이럴 때는 쿼리문 앞에 'resultMap'이라는 태그를 사용하여 SQL 조회 결과를 반환하는 방식을 지정하면 해결된다.jdbcType과 javaType을 각각 지정해주면 된다. jdbcType(테이블의 자료형)은 CLOB이겠고, javaType(자바의 자료형)은 String으로 가져오면 된다. ........

01. Database 2024.06.27

[jsp] 페이지 리로드 후 selectbox에 저장된 데이터값 표시하기

select box의 옵션 값을 선택하고 디비에 저장했는데,페이지를 리로드했을 때 저장된 값이 그대로 보이게 하려면 아래와 같은 방식으로 접근하면 어떨까. 전제)여기서는 answerValue라는 테이블 컬럼에 0 혹은 1을 입력하였으며,페이지를 불러올 때 사용하는 쿼리문에서 answerValue가 조회된다는 것을 전제한다. 코드설명)jsp에서 작성하는 자바 코드에 selectedValue라는 값을 지정하고, 불러오는 방식이다.  value="0">예 value="1">아니오  결과화면)

[javascript] window.print() 만으로 pdf 저장과 인쇄가 된다고?

결론부터 말하면 이 한줄만으로 가능하다. 현업에서 증명서 양식을 디자인하고 인쇄해야 하는 기능을 추가해야 했다. 프린트 기능은 java 단에서 복잡하게 이루어질 줄 알았는데,자바스크립트에서 인쇄하기 버튼에 단순히 onclick="javascript:window.print()" 한 줄만 추가해주면 되었다. 인쇄 인쇄를 구현하는 방식은 다양하겠지만, 간단하게1) 팝업창 생성(컨트롤러) 2) 인쇄할 페이지 표시(컨트롤러에서 리턴한 jsp 파일) 3) 인쇄 버튼 누르기(팝업창의 최상단에 버튼 위치) 의 과정으로 만들었다. 과정 세부설명)일단은, 만들어야 하는 증명서가 기본적인 표 형식이었기 때문에,jsp 파일을 만들고 퍼블리셔 분께 행 높이, 버튼 위치 등의 style 지정을 요청드렸다. controller에는..

05. etc 2024.06.27

[iBatis 2.0] if-else 조건문 사용법

status(맵으로 넘긴 파라미터)라는 키값을 비교하여 sql문에서 분기처리를 하는데, 0 일때, and 조건을 실행하고1,2,3 일 때, or 조건을 실행하고 싶었다. 세팅되어있는 ibatis는      PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"     "http://ibatis.apache.org/dtd/sql-map-2.dtd">  태그를 사용하여 값을 비교하는 조건 분기처리를 하였다. (A_COLUMN IS NULL AND B_COLUMN IS NULL AND C_COLUMN IS NULL) (A_COLUMN = #status# OR B_COLUMN = #status# OR C_COLUMN= #status#) (A_CO..

01. Database 2024.06.27

[에러해결][오라클] ORA-00932: 일관성 없는 데이터 유형: DATE이(가) 필요하지만 CHAR임

원인)CASE 문 사용시,THEN 이후 받아오는 데이터 타입과ELSE 이후 받아오는 데이터 타입이 '불일치' 하기 때문에 발생한 현상 즉, THEN 이후 DATE형을 받아왔으면,ELSE도 똑같이 DATE형으로 받아와야 하는데, VARCHAR2 타입으로 받아왔기 때문이다. 문제 쿼리)SELECT CASE         WHEN A_STTUS IS NOT NULL THEN A_REG_DATE         WHEN B_STTUS IS NOT NULL THEN B_REG_DATE         WHEN C_STTUS IS NOT NULL THEN C_REG_DATE         ELSE '-'   END AS REG_DATE, ※ A_REG_DATE, B_REG_DATE, C_REG_DATE는 데이터타입이 ..

02. Error 2024.06.20

[Eclipse] 에러로그 없이 로고만 뜨고 실행되지 않을 때

제목 그대로, 이클립스 실행 시 로고만 뜨다가 사라지는 현상을 경험했다.jdk 문제인가 했더니 경고창이 뜨지 않아서 jdk 문제는 아닌 것 같았다.이클립스 설치 디렉토리로 들어가서 eclipse.exe를 실행해도 에러로그가 전혀 없어서 당황했다. 이 문제에 대해 가장 일반적으로 소개되는 방법은,워크스페이스의 .metadata 내의 파일들을 전부 삭제하는 것이다.그렇지만 해결되지 않았다. 조금 더 알아보다가는 작업 시간만 줄어들 것 같아 그냥 설치파일들을 다 지우고 이클립스를 다시 다운로드했다.다시 설치해도 문제 현상은 똑같았다. 찾고 찾은 끝에,커맨드 창에 cd 이클립스 설치 디렉토리까지의 경로 입력 후eclipse.exe -clearPersistedState -clean을 입력했더니 아주 말끔하게 해결..

02. Error 2024.06.20

[에러해결] Java was started but returned exit code=13

이클립스를 여는 데 아래 사진과 같은 창이 뜨면서 실행이 되지 않았다.   검색해본 결과, 버전 업데이트 등등의 이유로 이런 현상이 나타날 수 있다고 하였고,eclipse.ini 파일에서 조금만 수정해주면 된다고 하여 따라해보았다.즉, .ini 파일에 들어가 openFile과 vmargs 사이에 -vm/jdk 경로 입력 후 \javaw.exe를 입력하고 저장하는 것이었다.  그런데 나는 이 방법으로 해도 실행이 되지 않아 다시 재부팅해서 실행해 보았는데,그래도 문제는 여전했다.  그래서 내가 선택한 방법은...이클립스를 삭제하고 다시 설치하기였다. 다시 설치를 해도 Workspace에 있던 내가 작업했던 기록은 남아서 다행이었다.

02. Error 2024.06.20

[SQL][Oracle] 엑셀다운로드 시간 단축했던 법 공유

현업에서 유지보수 업무를 하다가고객사로부터 4만건이 넘는 데이터를 엑셀로 다운받을 때6분 30초 정도 걸리는 등의 이유로 업무에 지장이 간다는 민원을 접수했다. 엑셀로 데이터를 불러올 때 결국 select 쿼리문을 쓰므로, 쿼리문만 수정하면 될 것 같았다. 우선, 3개월 단위로 조회하면 더 빨라지지 않을까 하여 'BETWEEN 조건'을 걸었다.6분 30초에서 2분 30초로 단축되었다. 데이터를 일부만 조회하니 시간이 자연스럽게 단축될 수 밖에 없었다. 하지만, 여기서 더 줄일 수 없을까 고민했고, 회사 선임님께 도움을 구했다. 그리고 서브쿼리문 하나만 수정했더니2분 30초에서 20초로 단축되었다. 여기서부터 이 포스팅에서 공유하고 싶은 이야기이다.무려 약 2분을 단축했던 방법이다.간단하게 말해, 서브 쿼..

01. Database 2024.06.20

[에러해결] CORS POLICY 에러 잡기

크롬에서 콘솔창을 열어서 내가 작성한 자바스크립트 구문이 잘 작동되는지 보려고 하는데,이런 창이 떴다.  그래서 알아보던 중 최근에 크롬에서 보안성을 강화하기 위해  그렇다.. 등등의 이야기가 있었고,아무튼 오류를 해결해야 작동여부를 확인할 수 있을 것 같았다. chrome console 창에 뜬 오류 3가지 정도의 방법이 있는데, 1. 크롬 브라우저를 open 하는 것(보안성을 포기하기는 싫어서 패스)2. Web Server for Chrome을 크롬에서 추가하여 사용하는 법(이것은 크롬 웹스토어에 있어서 추가만 해주면 되는데,왜인지 나는 추가가 안 되어서 마지막 방법인 3번째를 이용하기로 했다)3.  2번과 마찬가지로 크롬 웹스토어에서 'Allow CORS:Access-Control-Allow-Ori..

02. Error 2024.06.20