Fullstack-Study-241204-250625

커리큘럼(12-30/변경)

01. Java
02. git
03. Database 
04. Jsp [Server]

05. HTML,CSS 
07. JS
06. 미니프로젝트-2W

08. SpringFramework , SrpingBoot (v)
09. React JS [Front-end]
10. 중간프로젝트 (1M)
11. Linux 명령어
12. AWS 클라우드
13. DevOps - Docker
14. App - Android
15. 최종프로젝트 (1M)

스프링 부트

데이터베이스 연결(Mybatis)

Mybatis-spring-boot-start

  • 스프링 부트 위에 MyBatis애플리케이션을 빠르게 빌드 할 수 있음
  • @Mapper만 사용하여 인터페이스 위치만 알려주면 자동 처리
  • application.properties에 데이터베이스 연결 설정이 필수
  • MyBatis-Spring-Boot-Starter의 자동처리
  1. DataSource 자동감지
  2. SqlSessionFactory 자동생성
  3. @Mapper 어노테이션을 스캔하고 자동연결

부트에 Mybatis설정

  1. gradle
dependencies {
	//생략....
	//++데이터베이스 커넥터 필요
	//마이바티스
 // 스프링부트 버전과 동일하게 버전설정
	implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
}
  1. application.properties에 DB연결 추가
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/spring?serverTimezone=Asia/Seoul
spring.datasource.username=spring
spring.datasource.password=spring
  1. application.properties
# mybatis설정
# 언더바 카멜표기로 맵핑
mybatis.configuration.map-underscore-to-camel-case=true
# 엘리어스로 사용할 패키지명(VO매핑)
mybatis.type-aliases-package=com.simple.basic.command
# SQL mapper위치
mybatis.mapper-locations=classpath:/mapper/**/*.xml

Mybatis 실행 로그기능 추가

  1. dependency추가
dependencies {
	//생략....
	implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16'
}
  1. Database Config변경(application.properties파일)
  • 기존 mybatis설정시 추가했던 내용에 log4j 부분 추가
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3306/spring?serverTimezone=Asia/Seoul
spring.datasource.username=spring
spring.datasource.password=spring
  1. log4jdbc.log4j2.properties 생성 (resource폴더 아래)
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
  1. logback.xml 생성 (resources폴더 아래)
  • dbc.sqlonly : SQL문만을 로그로 남기며, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문이 보여진다.
  • jdbc.sqltiming : SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다.
  • jdbc.audit : ResultSet을 제외한 모든 JDBC 호출 정보를 로그로 남긴다.
  • jdbc.resultset : ResultSet을 포함한 모든 JDBC 호출 정보를 로그로 남긴다.
  • jdbc.resultsettable : SQL 결과 조회된 데이터의 table을 로그로 남긴다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyyMMdd HH:mm:ss.SSS} [%thread] %-3level %logger{5} - %msg %n</pattern>
</encoder>
</appender>
<logger name="jdbc" level="OFF"/>
<logger name="jdbc.sqlonly" level="OFF"/>
<logger name="jdbc.sqltiming" level="DEBUG"/>
<logger name="jdbc.audit" level="OFF"/>
<logger name="jdbc.resultset" level="OFF"/>
<logger name="jdbc.resultsettable" level="DEBUG"/>
<logger name="jdbc.connection" level="OFF"/>

<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>