스프링
Spring JDBC
짱코딩러
2022. 10. 20. 16:15
사전세팅
pom.xml
스프링,자바 버전에 맞게 숫자 수정, 서블릿 앞에 javax. 적어주기
spring-tx,spring-jdbc,spring-test
HikariCP, MyBatis, mybatis-spring, Log4jdbc 라이브러리 추가
jUnit 버전 변경, maven 버전 변경, Lombok 추가
Build Path 라이브러리에 ojdbc.jar 추가
테이블 생성, pk이름 부여해주기
root-context.xml(DB설정)
mybatis-spring Namespaces 추가, dataSource 설정, MyBatis 설정
context, mybatis-spring 체크,,,
src/main/resources에 log4jdbc.log4j2.properties 파일 추가
DB테스트
DataSource와 MyBaris가 연결되었는지 체크하기 위해 파일 추가
src/text/java /org.zerock.persistence/JDBCTests.java, DataSourceTests.java
JDBCTests.java : DB연결 됐는지
import static org.junit.Assert.fail;
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Test;
import lombok.extern.log4j.Log4j;
@Log4j
public class JDBCTests {
static { //static이므로 클래스 로딩될때 먼저 한번 실행됨.
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testConnection() {
//try(여기 괄호안에 넣으면 자동으로 Close() 해줌)
try (Connection con =
DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE",
"book_ex",
"book_ex")){
log.info(con);
} catch (Exception e) {
fail(e.getMessage());
}
}
}
DataSourceTests.java : 빈으로 등록된 DataSource로 잘 연결되고 있는지!
import static org.junit.Assert.fail;
import java.sql.Connection;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import lombok.Setter;
import lombok.extern.log4j.Log4j;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class DataSourceTests {
//root-context에서 hikari로 담아둔걸 꺼내는 중
@Setter(onMethod_ = { @Autowired })
private DataSource dataSource;
@Setter(onMethod_ = { @Autowired })
private SqlSessionFactory sqlSessionFactory;
@Test
public void testMybatis() {
try (SqlSession session = sqlSessionFactory.openSession();
Connection con = session.getConnection()) {
log.info(session);
log.info(con);
} catch (Exception e) {
fail(e.getMessage());
}
}
}