일단 환경을 SPRING / MYBATIS / ORACLE 을 사용하였다.
실제 실행은 spring scheduler 를 사용하여 주단위로 DB에 해당 정보를 갱신하는 부분이었으나 이번 글에서는
TXT 파일 저장 후 저장한 TXT 파일을 ORACLE DB에 BLOB 형태로 INSERT 까지 하는 부분까지만 적을 예정입니다.
REST API에서 값 요청하는 부분은 생략을 하고 TXT파일 저장 후 해당 TXT 파일을 BYTE[] array 형태로 DB에 Insert 할 예정이다.
vo 처리
----------------------------------------------------------------------------------------------------------------------
public class blobVO {
private byte[] txtfile;
public byte[] getTxtfile() {
return txtfile;
}
public void setTxtfile(byte[] txtfile) {
this.txtfile = txtfile;
}
}
아래 부분은 실제 파일 저장 및 DB에 데이터를 Insert등 부분을 처리하는 service impl 내의 내용이다.
-----------------------------------------------------------------------------------------------------------------------
//저장할 파일명
String filename = "테스트.txt";
try {
//저장할 파일명으로 파일 생성하는 부분 FileWriter의 파일명 다음의 false는 false로 했을경우 해당 파일에 새로운 데이터를 덮어씨는 부분이고 true 처리를 할경우 이미 있는 데이터에 현재 데이터를 append한다.
//테스트txt.파일에 쓸 내용
String data = "파일에 쓰기";
BufferedWriter fw = new BufferedWriter(new FileWriter(filename, false));
fw.write(sb.toString());
fw.flush();
fw.close();
} catch (Exception e) {
System.out.println("파일쓰기 오류");
}
blobVO vo = new blobVO;
//위에서 저장했던 파일 InputStream 사용하여 가져오기
File file = new File(filename);
InputStream is = new FileInputStream(file);
//Inputstream 읽은 데이타를 byte[] 형태로 변환
byte[] targetArray = IOUtils.toByteArray(is);
//vo에 데이터 담기
vo.setTxtfile(targetArray);
//DB에 데이터 INSERT TRY CATCH 처리를 해줘야 한다.
//dao에 insert를 처리하는 부분은... 별다를게 없어서 생략하였다.
dao.insertHotspotdata(hotspotData);
'Java' 카테고리의 다른 글
Read BLOBs data from database (0) | 2016.11.14 |
---|---|
Insert an Image (0) | 2016.11.14 |
java 배열 내 문자열 확인 (0) | 2016.10.04 |
대용량 엑셀파일 업로드 excel upload (4) | 2016.09.22 |
[Tomcat] UTF-8 한글 처리 (0) | 2016.04.08 |