<들어가기에 앞서>
아직 생으로 배우는 단계라 메이븐이나 그레이들을 사용하지 않는 상황에서 예제 등을 따라하다가 오류가 난다면 보통 거의 다 라이브러리 임포트가 안된 상황이다. 아래 글 참고.
https://codevision.tistory.com/7
<1. 히카리CP 불러오기>
본인은 5.0 버전을 받았다. 위에서 언급한대로 라이브러리를 관리해주지 않고 생으로 코딩중일 땐 프로젝트 빌드 패스와 함께 WEB-INF라이브러리 폴더에도 임포트해야한다.
https://mvnrepository.com/artifact/com.zaxxer/HikariCP
<2. 히카리CP enum 작성>
DB연결풀 같은 경우 어디서나 불러와야하기때문에 상수를 담는 enum으로 작성한다. 드라이버, url, ID, PW 본인 환경에 맞게 작성한다.
package todo.dao;
import java.sql.Connection;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
public enum ConnectionUtil {
INSTANCE;
private HikariDataSource ds;
ConnectionUtil(){
HikariConfig config = new HikariConfig();
config.setDriverClassName("org.mariadb.jdbc.Driver");
config.setJdbcUrl("jdbc:mariadb://localhost:3306/webdb");
config.setUsername("root");
config.setPassword("0000");
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
ds = new HikariDataSource(config);
}
public Connection getConnection() throws Exception{
return ds.getConnection();
}
}
<3. 히카리CP 테스트>
히카리CP를 테스트할 수 있는 간단한 메소드를 하나 만든뒤 컴파일한다.
package todo.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import lombok.Cleanup;
public class HikariTest {
public String getTime() {
String now = null;
try(Connection connection = ConnectionUtil.INSTANCE.getConnection();
PreparedStatement pstmt = connection.prepareStatement("select now()");
ResultSet rs = pstmt.executeQuery();
){
rs.next();
now = rs.getString(1);
}catch(Exception e){
e.printStackTrace();
}
return now;
}
public static void main(String[] args) throws Exception {
System.out.println(new HikariTest().getTime());
System.out.println(new HikariTest().getTime2());
}
}
허나 콘솔창엔 오류만이 가득한데...대충 읽어보자면 slf4j라는 라이브러리의 클래스 정의를 찾아볼 수 없다는 얘기이다. 그렇다면 콘솔창 말대로 라이브러리를 깔아주러 간다.
<4. SLF4J 라이브러리 설치>
https://mvnrepository.com/artifact/org.slf4j/slf4j-api
사실 SLF4J API라이브러리만 깔아줘도 되나, 히카리CP 연결시 콘솔창에 로그 관련 경고가 나온다. (오류X) 이게 꼴보기 싫으면 SLF4J SIMPLE 라이브러리를 찾아 깔아준다.
<5. 히카리CP 다시 테스트>
시간이 예쁘게 잘 나온다. 덧붙여 롬복에 @Cleanup 어노테이션을 사용하면 지저분한 try-catch문등의 예외처리문 없이 문장을 깔끔하게 작성할 수 있다.
'JAVA > JDBC' 카테고리의 다른 글
[JDBC] (이클립스) 웹개발 시작 전 이클립스 환경 설정 (0) | 2022.12.14 |
---|---|
[JDBC] (이클립스) 윈도우에 그레이들 설치 (0) | 2022.12.09 |
[JDBC] (이클립스) 서블릿에서 DB 연결이 안될 때 (혹은 서버에서만 오류날 때) (0) | 2022.12.05 |
[JDBC] (이클립스) 롬복(Lombok) 설치 (0) | 2022.12.01 |