개발/spring2(21)
-
17강
파일 업로드 후 데이터베이스에 저장 & 업로드 된 파일 브라우저에 출력 업로드 테이블 생성 src/main/resources 폴더에 mybatis/sql 폴더에 UploadFile.xml 파일을 만든다. Mapper namespace에 UploadFileRepository로 만듦. Insert쿼리에 id="save" parameterType="UploadParameter"로 함. 그리고 INSERT 쿼리를 만듦. T_UPLOAD_FILE 테이블 컬럼을 입력. VALUES는 parameterType(lower case)에 지정한 클래스의 필드를 입력함. Mvc.parameter 패키지에 UploadFileParameter 클래스를 만듦. 테이블에 생성한 컬럼명(upper case)을 변수로 추가(lower..
2023.01.30 -
16강(스프링부트 환경에서 파일업로드 만들기)
어플리케이션 프로퍼티에 얘네를 추가. src 하위 폴더를 만들어주고 index.jsp에 컨트롤 스페이스 해서 html5를 고름 EUC-KR들을 UTF-8로 바꿈 body안에 파일업로드 폼만들기 파일 업로드를 위해 jsp 파일을 만들었다. 2가지 라이브러리 추가(tomcat-embed-jasper/jstl) FileController에 @GetMapping을 @PostMapping으로 바꿔주고 url 적어줌. form 태그에서 method="post" 추가 body값이 0으로 나오면서 버튼이 안 뜬다 뭐가 문제일까. 문제는 index.html이란 파일이 static에 들어 있었기 때문이다. 스프링 부트에 web 의존성을 추가하고 localhost:8080에 접근하면 기본적으로 resources폴더에 있는 ..
2023.01.29 -
15강(Mybatis TypeHandler 사용)
기존에 만든 T_BOARD 테이블에 컬럼 추가 DEL_YN이라고 컬럼 이름 정하고 유형은 CHAR 선택. 그리고 길이 1 선택. default 값은 N으로 설정함. 코멘트는 삭제여부. 게시판 리스트 쿼리에 resultType에 지정된 클래스를 F3 눌러주고 private boolean delYn 추가. 리스트 SELECT 쿼리에도 B.DEL_YN이라고 컬럼 추가 Configuration패키지에 mybatis.typehandler 새로운 패키지 추가. 그리고 새로운 클래스 추가. StringValueBooleanTypeHandler Implements TypeHandler 넣어주기 오류나는 메소드를 만들어준다. ps.setString을 이용하여 값을 다시 set 한다. Boolean 값을 String으로 ..
2023.01.28 -
14강(스케줄러 사용법)
스프링 부트를 사용하면 스케줄러를 아주 간단하게 사용할 수 있다. 어플리케이션 메인 클래스에 @EnableScheduling 추가 스케줄러 관리하는 패키지를 하나 추가 Schdule1 메소드가 있고 @Scheduled 어노테이션을 추가하면 사용이 가능하다 corn에 5초에 한 번씩 작동하게 설정했다. local에서 5초마다 잘 돈다. 그런데 서버 환경마다 스케줄러 시간에 조건이 필요하다. 로컬, 개발서버, 운영서버 각기 다른 시간 설정을 한다고 하자. 어떻게 해야 할까. 저번에 만든 GolbalConfig 클래스랑 프로퍼티를 사용하면 된다. 먼저 프로퍼티에 corn(key = value)을 추가한다. 로컬은 5초마다 한 번씩, dev는 10초, prod는 20초 이런식으로 하고 프로퍼티 이름을 복사해서 ..
2023.01.26 -
12강(사용자 로그인 체크 간단하게 구현하기)
새로운 패키지와 클래스 만들기 @PutMapping 선택하고 F3 누르면 해당 클래스 소스가 보임. 3개의 Annotation을 복사해서 RequestConfig에 넣기 로그인 체크 여부 메소드를 만듦. 디폴트 값은 false로 만든 어노테이션은 Controller 메소드에 사용함. 등록/수정과 삭제 메소드에만 추가할 것. (로그인 체크가 필요한 경우에만 사용) 인터셉터에 preHandler(컨트롤러 메소드 호출 전)에 로그인 체크 조건을 추가 현재 요청 url이 컨트롤러 메소드에 매핑된 경우라면 HandlerMethod 클래스로 캐스팅하여 사용가능 현재 url에 매핑된 컨트롤러 메소드에 선언된 어노테이션을 가지고 올 수 있음. 현재 save 메소드에만 @RequestConfig를 추가하여 선언이 안된 ..
2023.01.24 -
11강(게시글 조회시 목록 페이징 처리 방법)
MySQLPageRequest 클래스에는 MySQL 페이지 요청 정보 및 계산된 값이 들어가게 된다. Limit, offset 2개 변수는 page, size 정보로 자동으로 계산된 값에 들어가게 된다. PageRequestParameter 클래스는 pageRequest(페이징 정보), parameter(검색조건 정보) 2가지 정보를 담아 Mybatis에서 사용할 수 있음. MySQLPageRequestHandleMethodArgumentResolver 클래스는 MySQL 쿼리 페이징 LIMIT, OFFSET에 사용할 값을 자동으로 계산한 값을 MySQLPageRequest 클래스에 담고, Controller에서 받을 수 있다. 현재 페이지 정보, 리스트 개수 가져오고 시작 지점을 계산한다. 계산된 값을..
2023.01.23