본문 바로가기

IT/개발

(26)
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..
JSP JSTL fmt 기능 /*숫자 콤마 찍기*/ /*JAVA문자열 JSP에서 숫자로 변환*/
java.net.SocketException: There is no process to read data written to a pipe. java.net.SocketException: There is no process to read data written to a pipe. 이 에러는 상당히 위험한 에러. 엑셀파일 업로드 중 라인수를 읽는 과정에서 많은 데이터로 인해 xlsx를 파싱하는 과정에서 나는 메모리 과점유 에러 for문안에 VO객체의 불필요한 메모리 생성(new)등 로직검토 필요. 위의 내용도 맞지만 추가합니다. poi 라이브러리를 이용해서 sheet에 있는 많은양의 데이터를 파싱할때 나는 에러.. SAX를 이용해서 파싱을 해야합니다. 해당내용은 추가할 예정.
JAVA 파일다운로드 파일명 한글깨짐 서버에 있는 파일을 다운로드할때 파일명에 한글이 포함되어있다면 한글이 깨지는 현상을 경험하셨다면 아래의 정보로 해결하실수 있습니다. ※ 단 JSP, 서버환경설정의 charset은 utf-8 입니다. 1 2 3 4 5 6 7 8 9 10 StringBuffer sb = null; String file_path = "/home/upload"; String file_name = "테스트.xlsx"; sb.append(file_path).append("/").append(new String(file_name.getBytes("UTF-8"), "ISO-8859-1")); File file = new File(sb); Colored by Color Scripter cs 왜 깨지는걸까? 원인 찾아서...추가하기...