지난 포스트 [책]스프링 부트 시작하기 리뷰_3 에 이어서 작업을 하였습니다.
공통
- 스프링 부트 시작하기(2019출판) 작업환경: 이클립스+STS플러그인+그래들빌드+스프링부트2.1.1버전+스프링프레임웍5.x
- 책 소스와는 다르게 자바는 Open JDK사용: jdk1.8.0_181버전
오늘 작업 결과: 소스를 H2 DB로도 작동 가능하게 설정. JPA방식 소스에만 적용했음.(아래)
- 게시판 파일업로드 FileUtils클래스 모듈 분석(아래)
위에서 Mysql과 h2 dB 매퍼쿼리를 호환되게 사용되게 코드 수정 후 thymeleaf 로 화면 출력결과 적용하기
- 기술참조: https://eblo.tistory.com/55
DB쿼리에서 1차 가공했던 소스를 쿼리에서 가공하지 않고, Thymeleaf 로 화면출력에서 작업(아래)
<th scope="row">작성일</th>
<!-- 기존 <td th:text="${board.createdDatetime}"></td> -->
<!-- 데어터 형식일때 포멧적용 현재는 String형식이라서 제외 <td th:text="${#temporals.createDate(board.createdDatetime,'yyyyMMdd')}"></td> -->
<!-- 반환 값이 String 이라서 substring 매서드 함수로 문자 가공처리(아래) -->
<td th:text="${#strings.substring(board.createdDatetime,0,10)}"></td>
<div class="file_list">
<a th:each="list : ${board.fileList}" th:href="@{/board/downloadBoardFile.do(idx=${list.idx}, boardIdx=${list.boardIdx})}" th:text="|${list.originalFileName} (${#numbers.formatDecimal(list.fileSize == null ? 0 : (list.fileSize)/1024, 0, 0)} kb)|"></a>
- 오늘 작업한 JPA방식(자동생성되는 스키마 테이블) 작업소스
board_jpa_20191227.zip (Mysql / H2 DB 변경 소스 포함)
- JPA 하이버네이트로 스키마 자동 생성되지 않는 Mysql 전용 소스(아래)
board_20191227.zip (Mysql전용)
- 공통사항
오늘 작업한 소스: 모두 스프링버전 2.x 호환됩니다.
No JPA방식: 수동 스키마파일( insight.sql )
JPA방식: 자동 생성되는 스키마(테이블) 초기 관리자 아이디 / 암호( admin@edu.com / 1234567 )
Ps. 앞으로 작업예정: JPA방식에서
- 위 게시판 입력창 에디터를 만들어 봅니다.
- 클라우드 헤로쿠(Heroku) 서버에 JPA 소스(H2 DB | Mysql 설정포함)를 H2 DB 설정으로 배포예정.
Ps. Mysql 과 H2 DB를 사용하기 위한 설정 및 JPA 하이버네이트 설정부부을 추가 한 소스(아래)
파일명: src/main/resources/application.properties 파일내용
#--------------------------------
spring.thymeleaf.cache=false
spring.resources.cache.period=0
spring.main.allow-bean-definition-overriding=true
spring.devtools.livereload.enabled=true
#--------------------------------
#mysql DB + JPA설정(아래)--------------
#spring.datasource.hikari.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
#spring.datasource.hikari.jdbc-url: jdbc:log4jdbc:mysql://localhost:3306/insight?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
#spring.datasource.hikari.username=root
#spring.datasource.hikari.password=apmsetup
#spring.datasource.hikari.connection-test-query=SELECT 1
#spring.jpa.database=mysql
#spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
#--------------------------------
#h2 DB + JPA설정(아래)-------------------
spring.datasource.url=jdbc:h2:mem:testdb;CACHE_SIZE=10240;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=15000;MODE=MySQL;
#메모리 DB대신 file DB사용시(아래)
#jdbc:h2:~/testdb
spring.datasource.platform=h2
spring.datasource.separator=;
spring.datasource.username=sa
spring.datasource.password=password
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.sql-script-encoding=UTF-8
spring.jpa.database-platform=H2
#spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
#---------------------------------
#DB공통(아래)------------------------
mybatis.configuration.map-underscore-to-camel-case=true
spring.jpa.generate-ddl=true
spring.jpa.show-sql=true
#스프링 부트2.x 부터 위 값을 false로 명시해 줘야 합니다.(아래)
spring.jpa.hibernate.use-new-id-generator-mappings=false
spring.jpa.hibernate.ddl-auto=create
spring.datasource.data=classpath:import.sql
#--------------------------------
[책]스프링 부트 시작하기 리뷰_6 (0) | 2019.12.29 |
---|---|
[책]스프링 부트 시작하기 리뷰_5 (0) | 2019.12.28 |
[책]스프링 부트 시작하기 리뷰_3 (0) | 2019.12.26 |
[책]스프링 부트 시작하기 리뷰_2 (0) | 2019.12.25 |
[책]스프링 부트 시작하기 리뷰_1 (0) | 2019.12.24 |
댓글 영역