Spring

[MySQL] 데이터베이스 연결

heejin424 2023. 2. 3. 16:22
728x90

데이터베이스 연결을 위해서는 DAO에 Connection을 직접 연결해주는게 아닌 커넥션풀이라는 기능을 사용해서 미리 연결을 해두고 기능을 사용해준다.

Spring_7강(스프링 DB연동_Mysql).pdf
0.56MB

버전에 맞는 

https://mvnrepository.com/artifact/mysql/mysql-connector-java

https://mvnrepository.com/artifact/com.zaxxer/HikariCP

히카리 라이브러리는 이거 사용

 

네가지의 라이브러리(MysqlConnecter & Spring-JDBC & HikariCP &Spring-test & JUnit)를 찾아서 pom.xml 에 넣어서 Maven Update해주기.

<!-- mysql 커넥터 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.32</version>
</dependency>

<!-- 스프링 jdbc모듈 -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
</dependency>

		
<!-- 히카리 커넥션 풀 -->
<!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>3.3.1</version>
</dependency>

      <!-- 테스트 환경 - spring-test모듈, junit기능 -->
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-test</artifactId>
         <version>${org.springframework-version}</version>
         <scope>test</scope>
      </dependency>
      
      <!-- Test -->
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.12</version>
         <scope>test</scope>
      </dependency>

모듈 사용을 위해 root-context에서 사용할 모듈 체크

DataSource와 HikariCP 빈으로 등록 하기 위한 namespace추가

DataSource설정

데이터소스란? 

spring-Jdbc에서 기본으로 제공, DB에 이용되는 URL, id, pw, DriverClass를 미리 정의해놓고 사용하는 객체를 의미한다.

1) 데이터소스와 히카리빈으로 등록

2) Jdbc템플릿을 사용하기 위한 root-context 설정 추가


DB연동 준비를 마친 후..

 

Spring-test 라이브러리 사용방법

주요 어노테이션

@RunWith – 스프링 프레임워크가 독립적으로 실행되도록 구동환경 설정
@ContextConfiguration – 사용할 스프링 설정 파일 경로 지정
@Test – 해당 어노테이션이 붙은 메서드를 실행

 

src/test/java폴더에 있는 패키지에 java파일 생성

 

커넥션이 있나 test해본결과 이상없음

 

그렇다면 DAO에 추가해도 괜찮음.

728x90