들어가기 전
maven archetype의 maven-archetype-quickstart로 프로젝트를 생성하였다.
spring Initializer로 하지 않았다는 것을 알고 있자.
(정확한 차이는 모르겠지만, maven-archetype-quickstart으로 진행하는 것이 dependency 설정을 더 자잘하게 해주는 느낌이다. spring-context, spring-jdbc, spring-tx 를 추가하기 때문)
1. pom.xml에 필요한 dependency 추가하기
- spring-context
- spring-jdbc
- spring-tx
- mysql driver
- datasource(apache에서 제공하는 datasource)
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.2.0</version>
</dependency>
2. config 파일 작성하기
1. ApplicationConfig
- @Import : DBConfig.class를 설정 파일로 import 하겠다는 어노테이션
@Configuration
@Import({DBConfig.class})
public class ApplicationConfig {
}
2. DBConfig
- DB와 연결을 맺기 위한 설정을 작성
- dataSoruce를 빈으로 등록해야 한다.
@Configuration
@EnableTransactionManagement // 트랜잭션 때문에 필요함
public class DBConfig {
private static final String DRIVER_CLASS_NAME = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/connectdb?useUnicode=true&characterEncoding=utf8";
private static final String USERNAME = "connectuser";
private static final String PASSWORD = "connect123!@#";
@Bean // 커넥션을 관리하는 객체(jdbc 드라이버, url 등등 알아야함). 빈으로 등록해주어야 한다
public DataSource dataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(DRIVER_CLASS_NAME);
dataSource.setUrl(URL);
dataSource.setUsername(USERNAME);
dataSource.setPassword(PASSWORD);
return dataSource;
}
}
3. DB와 연결 되는지 확인해보기
- 공장에 설정 파일을 넣어서, 스프링 컨테이너 생성
- 스프링 컨테이너에서 DataSource 객체를 하나 얻어온다
- 얻은 DataSource 객체의 getConnection() 메서드를 통해, Connection 얻기!
- connection을 얻었으면, 닫는 코드를 작성해주어야 한다
- close()는 throw가 필요하기 때문에, try-catch로 작성한다
public class DataSourceTest {
public static void main(String[] args) {
ApplicationContext ac = new AnnotationConfigApplicationContext(ApplicationConfig.class);
DataSource ds = ac.getBean(DataSource.class);
Connection conn = null;
try {
conn = ds.getConnection();
if (conn != null) {
System.out.println("접속 성공");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
'Spring > Spring JDBC' 카테고리의 다른 글
[Spring] [Spring JDBC] RowMapper와 @NoArgsConstructor, @Setter (0) | 2022.10.06 |
---|---|
[Spring] [Spring JDBC] 5. Spring JDBC 실습 진행 3 - insert(), update() (2) | 2022.09.20 |
[Spring] [Spring JDBC] 4. Spring JDBC 실습 진행 2 - selectAll() (1) | 2022.09.20 |
[Spring] [Spring JDBC] 2. Spring JDBC 실습 개요 (0) | 2022.09.19 |
[Spring] [Spring JDBC] 1. Spring JDBC 개요 (0) | 2022.09.19 |