본문 바로가기

Programming/Java_Spring60

Spring에서 file upload를 구현하고, DB에 저장 시.. exception발생 제목 그대로 spring에서, Multipart file을 저장하고, 해당 정보를 DB에 기록한다. 코드는 아래와 같이 구현했다. private void function(MultipartFile file){ String fileName = file.getOriginalFilename(); Path saveLoc = Path.get(pathparam1, pathparam2...).resolve(fileName); Files.copy( file.getInputStream(), saveLoc, StandardCopyOption.REPLACE_EXISTING); .. //Save to DB Map param = new HashMap(); param.put("saveLocation", saveLoc); param.. 2023. 11. 14.
MyBatis에서 SQL로그 남기기. Mybatis를 이용해서 SQL을 처리하다보면 디버깅을 해야할 때가 있다. 근데 무슨 쿼리가 어떻게 나가는지 알아야할것 아닌가? 그래서 로그를 남겨야한다. 1. maven에 패키지 설정 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 1.16 위와 같이 로그 남기기 위한 패키지를 정하고 2. log4jdbc.log4j2.properties파일 추가 resources패키지 밑에 log4jdbc.log4j2.properties파일을 만들고, 아래와 같이 내용 채우자. log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator log4jdbc.dump.sql.maxlinelength=0 이 파.. 2023. 11. 3.
MyBatis에서 char(nn)컬럼이 String으로 맵핑되지 않을 때. MyBatis를 이용하여 SQL문을 처리하고있는데, 디버깅하다가 알게 된 사실. varchar컬럼은 String으로 알아서 맵핑되는데 char컬럼은 맵핑이 안되고 error가 발생하더라. (아님 null) 왜이러지? 하고 한참 찾아보았다. 그러다 아래 원글님의 resultMap을 사용하는 것을 참고하여 해결했다. https://goodteacher.tistory.com/650 [MyBatis] 03. 조회 결과의 매핑 조회 결과의 매핑 이번 포스트에서는 database에서 select로 조회한 내용을 java object 즉 DTO에 매핑하는 내용에 대해 다양하게 살펴보자. MyBatis의 조회 결과 매핑 방식 MyBatis는 다양한 방식으로 조회 goodteacher.tistory.com 결과만 요약하.. 2023. 11. 1.
Mybatis에서 조건부로 쿼리 붙이기. Mapper를 이용해서 쿼리를 보낼 때, 조건부로 쿼리를 붙여야하는 경우가 있다. 예를 들어, '전체보기' , '날짜필터링', '그룹필터링', '권한필터링'.. 이런 메뉴가 있다고 할때, 사용자가 가능한 선택은 전체보기나 날짜만으로 필터링 또는 날짜+권한 이런식으로 선택이 가능하다고 할때, 다음과 같이 조건이 필요해질 수 있다. WHERE뒤에.. 전체보기면 그냥 통과, 그룹필터링이면 table.GroupCode in ('GroupA', 'GroupB') 이렇게, 권한필터링이면 table.AuthorCode in ('Admin1', 'admin2')... 권한과 그룹을 같이 적용하는 경우에는 table.GroupCode in ('GroupA', 'GroupB') AND table.AuthorCode in .. 2023. 10. 27.
IntelliJ Community Edition에서 WAR로 디버깅 실행 원글: https://dhsim86.github.io/web/2017/06/01/intellij_idea_community_tomcat-post.html Dongho Sim's dev story|Intellij IDEA Community Edition에서 external tomcat 실행 Stats: comments dhsim86.github.io 나의 경우 외부 tomcat에서 실행하기 위하여, 구현중이다. jar로 하게되면 내장된 고양이를 쓰겠으나, 외부 환경의 고양이서버를 써야하므로.. war로 패키징을 해야한다. 근데 이전까지는 IntelliJ Ultimate를 썼었다. 이때는 그냥 WAR를 intelliJ에서 실행 프로파일에 추가해 바로 디버깅하는 것이 지원되었다. (역시 인생은 현질인가?) 하.. 2023. 10. 19.
Java에서 generic 클래스 사용하기. 개발하다보면.. 유사한 결과를 반환하는 클래스가 필요한 경우가 있다. 예를들어 API에서 호출에 따른 결과를 반환하는 경우. 결과 Status와 결과 data들을 반환하면 된다. 그래서 다음과 같이 응답의 기본을 생성했다고 가정하자. @Setter public class MyResponseMessage{ private int responseCode; private String responseMessage; } 이렇게 하면 API의 호출에 따른 결과를 반환해줄 수 있다. 근데.. 여기서 하나만 더 생각해보자. 내가 TableA 쿼리 결과와 TableB쿼리결과를 반환하는 API가 각각 하나씩 있다고 해보자. (둘 다 List) 그럼.. 응답 Object를 어떻게 해줄 수 있을까? @Setter public .. 2023. 9. 27.
728x90