
JDBC는 Java언어로 작성된 애플리케이션이 DB와 통신할 수 있도록 해주는 API이다. Java에서 DB작업(CRUD등등..)을 처리할 때 사용하는 표준 인터페이스.
(1) 사진처럼 DB 모양 아이콘을 클릭.
이 아이콘이 보이지 않는다면 상단의 View - Tool Windows -> 연결할 DB 선택
아래에 드라이버 파일 다운로드
MySQL에서 작업중이던 Connections들과 어떻게 구별해주는건가 궁금증이 생겨 찾아보니 각 Connection은 각각 독립된 연결을 통해 생성되며,
요청을 처리하는 세션 단위로 분리되고, 이는 서로 격리된 트랜잭션 환경을 제공한다고 한다. 따라서 여러 작업을 동시에 처리할 수 있고, 특정 Connection이 끊겨도 다른 Connection에 영향을 주지 않는다.
(2) Host, user, Password를 입력 후 Test Connection 실행,
정상적으로 작동 했다면, 세팅 끝.
쿼리가 문제 없이 실행된다면 성공!
개발 단계에서 DB 상태를 확인하거나 테스트 데이터를 삽입할 때 필요한 연결
DBConnection Test를 위한 Junit과 Spring Test 의존성 주입
Spring 버전 5.3.30, Java 17버전을 사용한 프로젝트이기 때문에 Junit도 최근버전인 5로 맞췄다.
(항상 버전호환성을 신경쓰자..)
DataSource는 데이터베이스 연결을 관리하는 인터페이스
DBconnection 을 테스트 하는 코드
import javax.sql.DataSource;
import java.sql.Connection;
import static org.junit.jupiter.api.Assertions.assertTrue;
// JUnit 5
@ExtendWith(SpringExtension.class)
@ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/spring/**/root-context.xml"})
public class DBConnectionTest {
@Autowired
DataSource ds;
@Test
public void jdbcConnectionTest() throws Exception {
Connection conn = ds.getConnection();
System.out.println("conn = " + conn);
assertTrue(conn!=null);
}
}
// JUnit 4 방식
@RunWith(SpringRunner.class)
// JUnit 5 방식
@ExtendWith(SpringExtension.class)
여기서 Could not autowire. No beans of 'DataSource' type found. 라는 에러가 날것이다.
DataSource는 데이터베이스 연결을 관리하는 인터페이스로
데이터베이스 연결 정보와 커넥션 풀을 관리하며
장점으로는
커넥션 재사용으로 성능 향상
동시 접속자 관리 용이
연결 설정 중앙 관리 가능
즉 DB 연결을 효율적으로 관리해주는 관리자 같은 역할을 한다고 보면 된다.
root-context.xml
<!-- DataSource 빈 설정 -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/your_database"/>
<property name="username" value="your_username"/>
<property name="password" value="your_password"/>
</bean>
를 추가해주고
pom.xml에 위사진처럼 BasicDataSource 사용 위한 Apache Commons DBCP2 의존성까지 하면
ds밑에 있던 빨간줄이 사라질 것이다.
여기까지 했다면 인텔리제이에서 미리 넣어두었던 더미데이터를 불러오기가 가능해진다.
https://github.com/KWAK-JINHO/TIL/blob/main/Spring/spring_database_connection.md
깃허브에 정리한 Spring에서 DB를 연결하는 방법들이다.