지난이야기
- insert 성공 확인하면서 db 연동은 완료했는데 select 하면null이 리턴되는중.. typeAlias 문제인듯
1. 커넥션풀 디펜던시
1) DBConfig.java
@PropertySource("classpath:/application.properties")
@Configuration
public class DBConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource.hikari")
public HikariConfig hikariConfig() {
return new HikariConfig();
}
@Bean
public DataSource dataSource() {
return new HikariDataSource(hikariConfig());
}
}
2. sql log
1) dependency
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
2) log config file
log4jdbc.log4j2.properties 생성
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
# mysql 8.0 드라이버 맞춰주기 위함
log4jdbc.drivers=com.mysql.cj.jdbc.driver
log4jdbc.auto.load.popular.drivers=false
참고
application.properties 수정
변경전
# mysql connection
spring.datasource.hikari.jdbc-url=jdbc:mysql://localhost:3306/{스키마명}?serverTimezone=UTC&characterEncoding=UTF-8
spring.datasource.hikari.username={계정명}
spring.datasource.hikari.password={비번}
spring.datasource.hikari.pool-name={풀네임}
spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
변경후
# mysql connection
spring.datasource.hikari.jdbc-url=jdbc:log4jdbc:mysql://localhost:3306/{스키마명}?serverTimezone=UTC&characterEncoding=UTF-8
spring.datasource.hikari.username={계정명}
spring.datasource.hikari.password={비번}
spring.datasource.hikari.pool-name={풀네임}
spring.datasource.hikari.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
참고
3) logback-spring.xml 생성
application.properties
# logging
logging.config=classpath:logback-spring.xml
- 기존 logback.xml 말고 직접 설정한 파일 읽을 수 있도록 추가
logback-srping.xml
- resource 하위에 생성 (classpath)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyMMdd HH:mm:ss} %-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>