본문 바로가기

전체 글59

[mysql] 통계쿼리, WITH ROLLUP 사용하기 통계 쿼리 작성 후 각각 수를 더하는 걸 간단하게 WITH ROLLUP을 사용해서 완성하였다 SELECT IFNULL(depart_nm,'모든합계') as depart_nm, IFNULL(org_nm, '전체') as org_nm, SUM(X.JOIN_COUNT1) AS stepB, SUM(X.JOIN_COUNT2) AS stepC, SUM(X.JOIN_COUNT3) AS stepD, SUM(X.JOIN_COUNT4) AS stepE, SUM(X.JOIN_COUNT5) AS stepF, SUM(X.JOIN_COUNT6) AS stepG, SUM(X.JOIN_COUNT7) AS stepH, SUM(X.JOIN_COUNT8) AS stepI, SUM(X.JOIN_COUNT9) AS stepJ, SUM(X.J.. 2022. 10. 6.
[mysql] update join 다중 데이터 넣기 update 서브쿼리로 많은 데이터를 넣을떄 사용 하는 방법 update tn_user a join ( select A.user_idx, B.org_idx from tn_user A inner join tn_orginfo B on A.user_team = B.org_nm and B.org_depth = 2 ) b on a.user_idx = b.user_idx set a.org_idx = b.org_idx; update구절에도 조인이 된다. 2022. 9. 30.
로그인 후 이전페이지 이동 Referer 로그인 후 메인페이지 이동이 불편하다는 민원이 들어와 Referer 사용 하여 해결 @RequestMapping(value="/login/login.do") public String login ( ModelMap model, HttpServletRequest request ) throws Exception { String referer = request.getHeader("Referer"); request.getSession().setAttribute("redirectURI", referer); return "/login/login"; } 로그인을 하지 않은 상태에서 신청버튼을 누르면 로그인 jsp login.jsp 이동 전에 세션에 전페이지 주소를 담고 시큐리티 로그인을 성공 후 defaultTarge.. 2022. 9. 29.
톰캣 LifecycleException 에러 org.apache.catalina.LifecycleException: Failed to start component StandardEngine[Catalina].StandardHost[localhost].StandardContext[/controller] 오류가 발생 egov 3.7 3.10 두개를 이용하다가 발생하였음 리파지토리가 문제인거 같아서 바라보는 경로를 각각 설정해주었지만 위 톰캣에러가 발생하였음 1.clean Project > Clean 2. Maven Update 해당프로젝트 우클릭 > Maven > Project Update 3. 톰캣 Clean Server우클릭 CleanServer 우클릭 Clean Tomcat work Directory 3-1. 톰캣 새로 생성 3번을 해도 작동하지.. 2022. 9. 15.
ibatis 동적 쿼리 수행 시 autoResultMap 에러 문제: 현업이 종종 특정 데이터를 엑셀로 뽑아달라는 요청을 합니다. 요청이 간헐적이고 같은 데이터를 시도 때도 없이 새로 뽑아달라는 요청을 해서, 좀 효율적으로 처리하고자 동적 쿼리를 수행하는 메뉴를 하나 만들었습니다. 해당 쿼리가 자주 변하고 보안 문제도 있었기 때문에, 관리를 편하게 하기 위해 DB 대신 파일 기반으로 설계했습니다. 서버에 올라가 있는 sql 파일을 읽어 목록을 구성하고, 해당 쿼리를 담은 sql 파일을 읽어 엑셀로 다운로드 받을 수 있는 기능입니다. (우리는 요청 쿼리를 담은 sql 파일을 서버에 올리기만 하면 되도록 말이죠.) iBATIS 를 사용하고 있어 파일에서 읽은 쿼리를 아래와 같이 $sql$ 형태로 전달하도록 했는데, $sql$ 첫 번째는 정상적으로 실행되고, 그 이후 다.. 2022. 9. 2.
컬럼 중 replace 사용 하여 부분 변경하기 홈페이지 리뉴얼 하면서 파일 폴더 경로가 변경되니 이미지가 깨지는 현상이 발생하였다. img url이 도메인/a/b/파일이름 이런식으로 되어있는데 변경하면서 파일 경로를 c/d로 변경하였다 변경전 test.com/a/b/testfile update test_table set text = replace(text,'/a/b', '/c/d'); 변경 후 test.com/c/d/testfile 2022. 8. 30.
ajax form 한번에 보내기 ajax에서 form 안에 있는 data를 한번에 전송하기위해서 JQuery의 serialize()를 사용해준다 형태: $("form id").serialize(); $.ajax({ url : 서버url, type : "POST", data : $("#폼 아이디").serialize(), dataType: "json" success : function(){ alert("성공"); }, error : function(err){ alert("실패"+err); } }) form serialize 데이터 값 변경 방법 var formData = $('#formId').serializeArray(); formData = changeSerialize(formData, '변경할inputName', '변경될inputV.. 2022. 7. 14.
MYSQL ROW_NUMBER() 사용법 (중복데이터 순번) 쿼리 조회 후 중복데이터들의 순번을 매기기 위해 여러가지 시도를 해본 결과 SELECT addr, ROW_NUMBER() OVER(PARTITION BY addr ORDER BY height DESC, userName ASC) "지역 별 키큰 순위", userName, height FROM userTBL; 를 사용하여 결과를 얻을수 있었다 @rownum:=@rownum+1 이런 방법으로도 시도하였지만 중간에 몇몇 데이터가 원하는 값이 나오지 않았다 (아마 그룹이 같아도 시퀀스가 뒤에있어서 그랬던것 같다) 2022. 7. 14.
JAVA 접속자 IP 가져오기 // 클라이언트 IP 주소 가져오기 #1 String ipAddress=request.getRemoteAddr(); System.out.println("클라이언트 IP 주소: "+ipAddress); // 클라이언트 IP 주소 가져오기 #2 String header=request.getHeader("X-Forwarded-For"); String ipAddress=new StringTokenizer(header, ",").nextToken().trim(); System.out.println("클라이언트 IP 주소: "+ipAddress); // 클라이언트 IP 주소 가져오기 #3 String ipAddress=request.getRemoteAddr(); if(ipAddress.equalsIgnoreCase.. 2022. 6. 16.