Language/JAVA 10

[iBatis] iterate

iBatis iterate문 태그property : 파라미터명  - 반복돌릴 대상들이 들어있는 리스트prepend : 쿼리로 쓰일 문자 - iterate문 전에 쓰인다 (AND, IN, WHERE 컬럼명 IN 등)open : 구문이 시작될때 삽입할 문자열close : 구문이 종료될때 삽입할 문자열conjunction : 반복되는 사이에 출력할 문자열업무에서 활용해야해서 엄청 찾아봤는데 보통 AND, OR, IN 문을 쓰지나처럼 해당되지않는 것을 찾는 NOT IN 용으로는 iterate 쓴 예문이 없어서 시행착오 많이했다."AND chktype NOT IN" prepend 으로 넣으니까 안되더라. 웬만하면 그냥 쿼리 쓰자.-- DELETE문이나 SELECT문 쓰면 된다DELETE FROM tb_sample..

Language/JAVA 2024.06.14

Stream API 2 : Collection 합 구하기

Stream API에서 Sum() 함수를 사용하려면 기본형 특화 스트림(Primitive Type) 스트림을 사용해야한다.정수형 원시스트림IntStreamLongStreamDoubleStream 목표List 내의 map 내의 int value를 가진 특정 키를 찾아 합하고 싶다 코드// 1. 순회할 리스트List testList = testDAO.selectTestList(paramMap); // testList : [{"cnt": 1}, {"cnt": 2}, {"cnt": 3}, {"cnt": 4}]// 2. 리스트 내 Map 순회int totalCnt = testList.stream() // 3. Map 내에서 더할 대상인 cnt를 찾아 IntStream으로 변환 .mapToInt(i ->..

Language/JAVA 2024.05.31

Stream API

// 요양기관번호를 key로 하여 병원목록을 map으로 변환 Map hpMap = hplist.stream() .collect(Collectors.toMap(hp -> ((ListOrderedMap) hp).get("hpNo").toString(), Function.identity())); // 방법1. map모두 합치기 List newlist = csIssuelist.stream() .map(i -> { i.putAll(hpMap.getOrDefault(i.get("hsptCd"), new EocsMap())); return i; }) .collect(Collectors.toList()); map.put("csIssuelist", newlist); // 방법2. map 요소 중 뽑아서 합치기 List ..

Language/JAVA 2024.02.27

[JAVA] 반복문에서 배열요소 삭제

무한댓글 구현 + 삭제여부 확인하며 새로 알게된 개념 메모 참고) 아래 에서 이어지는 게시물입니다 계층형 쿼리 공지사항 게시판에 댓글 기능을 도입한다고 한다. 댓글-대댓글로 2 depth인 줄 알았으나, 대대댓글 3 depth가 될 수도 있고 아닐수도 있고 변경가능성 농후..하므로 일단 3 depth 기준으로 조회 쿼리를 idleday.tistory.com 목표 지난번엔 대댓글 정렬까지 구현했다. 이제 삭제된 댓글들 중 삭제되지않은(살아있는) 후손대댓글이 하나라도 있는 경우 목록에서 살려둘거고, 자신도 삭제됐고 후손들도 싸그리 삭제되어있는 경우 목록에서 제외하려고 한다. 살아있는 후손이 있는지는 댓글 전체목록을 돌면서 찾는 즉시 리스트에서 삭제하려고 한다. 즉, 반복문 순회 중 ArrayList 요소를 ..

Language/JAVA 2023.11.02

[JSTL] c:forEach 역순

c:forEach에 직접 value값을 입력하는 방식으로만 줄창나게 써오다가 이제 반복문으로 순서도 넣어보기로 했다. 그 과정에서 구글링을 통해 c:set 을 처음 배웠다. 가장 중요한 지식은 서버사이드렌더링 방식인 jsp을 쓸 때 각 데이터들의 동작 순서를 익힌 것! JAVA → jstl → HTML → javaScript 저 순서대로 뿌려지기에 jstl 데이터는 javascript에 할당할 수 있지만, javascript 데이터는 jstl에 할당할 수 없는것 원하는 목표상태는 현재 연도부터 2022년까지 역순으로 셀렉트박스 옵션에 나열되는 것이다. (2023,.. 2022) 아래처럼 하면 항상 올해,작년 이렇게 두 해만 나온다. 심히 단순한 코드다. 좀더 오래오래 써먹을 만한 유지보수성 높은 방식으로..

Language/JAVA 2023.09.25

JDBC, SQL Mapper, ORM

4월30일자 인프라스터디에서 나온 주제 정리 예, 일반적으로 SQL 매퍼 프레임워크를 사용하려면 JDBC가 있어야 합니다. JDBC는 관계형 데이터베이스와 상호 작용하기 위한 표준 Java API로, 데이터베이스에 연결하고, 데이터베이스에 SQL 문을 전송하고, 결과를 검색하기 위한 인터페이스 및 클래스 집합을 제공합니다. SQL 매퍼 프레임워크는 JDBC를 기반으로 구축되어 Java 코드로 SQL 문을 작성하는 작업을 간소화하기 위한 추가 기능을 제공합니다. 일반적으로 개발자는 이 프레임워크를 사용하여 Java 코드에서 SQL 문을 하드코딩하는 대신 외부 XML 또는 주석 기반 파일에서 SQL 쿼리를 정의할 수 있습니다. 그러면 SQL 매퍼 프레임워크가 SQL 문을 생성하고 JDBC를 사용하여 데이터베..

Language/JAVA 2023.05.01