본문 바로가기

전체 글

(533)
JSP 본문 내용을 텍스트 파일로 저장 %>--%>response.setContentType("application/octet-stream;charset=euc-kr"); // binaryresponse.setHeader("Content-Disposition","attachment;filename=파일명.txt");  // 저장할 내용들 기술. DB 에 있는 내용을 추출하려는 거겠지만..%>
스프링 Transaction 트랜잭션 트랜잭션(@Transactional)은 Controller.java 가 아니라, ServiceImpl.java 에서 기술(inteface 인 Service.java 에서도 기술하지 않음). /build.gradle JPA 설정과 다를게 없음. /src/main/resources/application.yml JPA 설정과 다를게 없음. table1 과 table2 의 관계는 편의상 1:1 로 설정. table1 의 col11 이 primary key, Object1.java 연계. table2 의 col21 이 pk, table2 의 col11 이 table1 의 col11 대응, Object2.java 연계. 이곳에서는, table2.col11 에 foreign key 세팅이 되지 않은 상태로 본다. f..
스프링 파일 업로드 MultipartFile #2/2 "스프링 파일 업로드 MultipartFile #1/2" 에선, 로컬 파일을 서버에 업로드 할 때.. 로컬 파일 속성을 그대로 업로드하므로, 로컬에서의 작성일 등등의 정보가 그대로 업로드. "스프링 파일 업로드 MultipartFile #2/2" 에선, 서버에 업로드 할 때.. 경로와 파일명을 변경하면서 저장하므로, 로컬에서의 작성일 등등의 정보가 변경됨. 덧붙여서, 이미지 게시판 (테스트를 위한 간소화 버전) 관리 내용 추가. 여러 파일을 한 번에 업로드 하는 것은, "스프링 파일 업로드 MultipartFile #1/2" 참조. Ajax 를 이용해서 파일들을 미리 업로드 하고, 본문을 나중에 올려서 통합하는 방법도 있음. * build.gradle plugins { id 'org.springframe..
스프링 파일 업로드 MultipartFile #1/2 // 파일이 저장되는 os 상의 경로는 application.yml 에 기술 @PostMapping("/aaa") public String methodA(MultipartFile bbb) throws Exception{ // org.springframework.web.multipart.* log.info(bbb.getOriginalFilename()); // 경로명 없이 파일 이름과 파일 확장자 log.info(bbb.getSize()); // long 바이트 사이즈. 1024 로 나누면 KB 사이즈 log.info(bbb.getContentType()); // image/jpeg, image/gif, image/png, ... } - file type 외의 컨트롤들은 그대로 String 파라미터로 담을..
웹프로그램으로 엑셀 저장시 숫자를 텍스트로 인식하게 하는 방법 - 참고 원문 : https://blog.naver.com/joonbread/222558718843 웹프로그램에서 엑셀 저장시, html 구조를 만들어 사용하는데.. '00123-4567-8888' 와 같이 숫자 외의 문자가 조합된 경우, 이를 문자로 인식하기 때문에 엑셀로 저장한 다음에도 동일한 문자열이 나온다. 그런데 숫자만으로 저장하는 경우, '0012345678888' 로 저장되지 않고.. '1.235E + 10' 로 표시되기도 한다. 셀의 폭을 넓히면 '12345678888' 로 표시되지만, 그래도 앞에 있는 '00' 은 누가 집어 먹었을까..? 그래서, 해당 숫자를 문자로 인식하게 하는 방법이 필요하다. 만약 table 구조였다면(아무래도 엑셀이다 보니 table 구조이기 쉽다), ..... ..
JUnit5 JPA DB 테이블 1개 목록/상세/등록/수정/삭제 ※ Mybatis mapper 가 설정되어 있으면 참조를 하기 때문에, 세팅된 mapper 가 불필요 하면 disable 방법을 찾아 보는 것도.. JUnit 테스트 하는데 계속 에러가 나서 결국 포기했었는데, 나중에 확인해 보니 mapper 중 하나가 문제를 일으켰던... ㅠ. @Slf4j // lombok.extern.slf4j.* @SpringBootTest // org.springframework.boot.test.context.* public class ClassATests{ @Autowired // org.springframework.beans.factory.annotation.* ClassARepository caRepository; // interface 이기 때문에 스프링에게 생성을 맡기..
스프링 JPA, 평범한 게시판 구현 DB 테이블 1개 검색 조건으로 조회하고 페이지 링크를 거는 목록, 상세, 등록, 수정, 삭제 등을 다루는 평범한 게시판 * 파일 구조 /src/main/java/도메인/controller/Board2Controller.java, request/response 교통정리만 처리 /src/main/java/도메인/domain/Board2.java, 기본 데이타 구조 (DB 연계). Board 라고 해도 됨 /src/main/java/도메인/dto/PageRequestDTO.java, 목록 검색 조건과 페이지 정보 /src/main/java/도메인/repository/Board2Repository.java, DB 관리 (JPA 핵심이자 기술할게 없기도..) /src/main/java/도메인/service/Board2Servic..
Java 에서 DTO, VO, @Entity 구분 - DTO (Data Transfer Object) 계층간 데이타 교환용. @Getter @Setter - VO (Value Object) 데이타 참조용. @Getter, equals() hashCode() - @Entity DB 매핑용. javax.persistence.* - https://maenco.tistory.com/entry/Java-DTO와-VO의-차이 - https://velog.io/@livenow/Java-VOValue-Object란 - https://youngjinmo.github.io/2021/04/dto-vo-entity/