IT (39) 썸네일형 리스트형 Spring ibatis resultMap 쿼리 2개실행 저는 ibatis에서 주로 resultType으로 resultClass를 사용했습니다. VO에 선언해주고 resultClass에 선언해주면 끝이었으니까요.(간단해서) 주석의 기능은 userVO를 단건 조회할때 user의 subject의 리스트를 가져오는 기능입니다. ex) userVO={userName=홍길동, userSeq=10, userAge=17, userGender=M, userSubjects=[Math,English,Science]} 정리하면 1. resultMap을 사용할땐 column의 값이 property의 값으로 set된다 2. resultMap안에 List변수를 선언해서 또 하나의 쿼리ID를 실행할 수 있다. 3. resultMap안에 List변수를 선언했다면 VO에 List변수를 선언.. Spring(JAVA) 엑셀 대용량 업로드 Spring으로 개발한다면 대부분은 poi 라이브러리를 사용해서 프로젝트를 진행합니다. poi 라이브러리는 너무 좋습니다. 엑셀을 파싱해서 데이터를 불러오기 때문입니다. 하지만 데이터의 건수가 많아지면 당연하게도 서버의 메모리의 사용률은 증가됩니다. 그로인해 서비스의 영향을 줄 수 있습니다. 우선 구글링을 통해 얻은 정보를 공유합니다. 로직의 여러 class들이 어떤 기능을 하는지는 추후 추가하도록 하겠습니다. 아래 소스는 실제 엑셀이 파싱되는 부분을 구현한겁니다.(구글링참고) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46.. 스프링 form태그 왜 써야할까? > 편합니다. 불필요한 작업을들 안하게 해줍니다. 어떤 점이 좋은걸까? > 불필요한 작업들 즉, 페이지 이동시마다 selectbox 컴포넌트에 값을 셋팅해줘야 하는 번거로움을 줄여줍니다. > VO(DTO)와 이름을 같게 해주면 자동으로 값이 셋팅됩니다. 사용방법 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Y N /* 여기서의 ${typeCd} 는 controller에서 model을 통해 전달된 리스트 */ 선택 Colored by Color Scripter cs 위의 소스코드를 보시면 아시겠지만 공통적으로 path에 VO와 같이 naming해주면 자동으로 값이 셋팅되서 ajax, submit을 할때 편리합니다. 감사합니다. Java 파일 읽기, 파일 쓰기 Java에서 파일을 읽고, 쓰기위해 필요한 정보를 작성합니다. 1 2 3 4 5 6 7 8 9 10 11 12 /* 이렇게 하면 파일 읽을 준비가 끝났습니다. */ BufferedReader br = new BufferedReader(new FileReader(new File("test_input.txt"))); /* Reader가 읽기니까 writer는 당연히 쓰기겠죠? Reader 부분을 > Writer로 바꿔줍니다. */ BufferedWriter bw = new BufferedWriter(new FileWriter(new File("test_output.txt"))); /* 파일을 읽을때는 보통 while 문을써서 파일을 읽습니다. */ String line = null; while((line =.. Spring Transactional annotation Spring에서 Transaction이란 쉽게 요약하자면 여러번의 DBConnection이 있을경우 설정해주는 기능을 말한다. A테이블을 Delete 후 B테이블에 Insert할때 에러가 발생했을시 Transaction에 의해서 자동으로 Rollback이 되는 설정을 할 수도 있다. 스프링에서 제공하는 Transactional annotation 의 메소드는 https://docs.spring.io/spring/docs/5.0.4.BUILD-SNAPSHOT/javadoc-api/org/springframework/transaction/annotation/Transactional.html Transactional (Spring Framework 5.0.4.BUILD-SNAPSHOT API) docs.spr.. Spring Thread(스프링 쓰레드처리) 스프링에서 비동기로 작업을 하기위한 개발 예를들어 엑셀의 Row를 DB에 Insert하는과정에서 건수가 너무 많은경우 모든 데이터가 입력되기까지 사용자는 기다려야합니다. 하지만 그런 오류를 개선하고자 엑셀의 Row를 DB에 Insert하는과정은 또 하나의 Thread를 생성해서 작업하도록 할 수 있습니다. 먼저 Spring 설정파일에서 bean을 생성합니다. 1 2 3 4 5 6 7 Colored by Color Scripter cs 실제 사용될 class에서 Spring에서 제공하는 해당 Class를 선언하고 실행합니다. 1 2 3 4 5 @Resource(name = "workExecutor") private ThreadPoolTaskExecutor workExecutor; ExcelUploadThr.. Oracle LISTAGG 리스트 형태를 콤마 형태로 변경 SELECT NAME, NAME_SEQ FROM STUDENTS /*결과 */ NAME NAME_SEQ 홍길동 1 이순신 2 안창호 3 SELECT LISTAGG(NAME, '/') WITHIN GROUP(ORDER BY NAME_SEQ DESC) FROM STUDENTS /*결과 */ NAME 안창호,이순신,홍길동 JAVA CSV파일 엑셀에서 열때 숫자를 문자로 인식 CSV로 파일을 만들때 앞에 =" 뒤에 " 값을 주면 CSV값에는 해당문자들이 포함되있지만 실제 보이는 값에는 해당문자가 빠져있다. 1 2 3 4 5 6 StringBuffer sb = new StringBuffer(); List listMap = cardDao.selectList(); for(Map result : listMap){ sb.append("=\"").append(listMap.get("cardNo")).append("\"").append(","); } Colored by Color Scripter cs http://blog.naver.com/PostView.nhn?blogId=tear230&logNo=220562618850&parentCategoryNo=&categoryNo=28&viewD.. 이전 1 2 3 4 5 다음