✔️복습
자바 JDBC는 DAO에서 1.드라이버로드와 2.DB연결 3.데이터 sql실행 4.연결해제를 반복한다
여기서 반복되는 1.2.4번은 공통로직으로 횡단 관심,어드바이스라고 말한다 그래서 새로운 클래스를만들어
JDBCUtil로 분리하여 관리한다 따라서 JDBCUtil을 사용해서 DAO를 작성했다
boolean insertBoard(BoardDTO dto) {
Connection conn = JDBCUtil.connect();
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(INSERT);
pstmt.setString(1, dto.getTitle());
pstmt.setString(2, dto.getWriter());
pstmt.setString(3, dto.getContent());
int rs = pstmt.executeUpdate();
if(rs <= 0) {
return false;
}
System.out.println("[로그] 글작성 완료");
} catch (SQLException e) {
e.printStackTrace();
}
JDBCUtil.disconnect(conn, pstmt);
return true;
}
인서트 문의 핵심은 executeUpdate()의 반환값을 통해 DB 반영 여부를 판단하는 것이다. 즉 실행이 잘됬으면 true, 실패했으면 false를 반환한다

✔️스프링에서 JDBD사용하기
🛠️pom.xml에서 설정
스프링에서는 JDBC사용할때 jdbctemplate를 사용할수 있다 JDBC를 사용하기 위해서는 jar파일이 필요한데
pom.xml에서 설정할수 있다
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
의존성 추가를 완료하면 새로운 DAO를 만들어서 기존DAO의 내용을 복사한다
JdbcTemplate을 사용하면 SQL 실행을 스프링이 대신 처리해준다
개발자는 SQL과 파라미터만 신경 쓰면 된다

🛠️jdbctemplate사용을 위한 멤버변수 선언과 의존성 추가
jdbc를 사용하기 위해 멤버변수로 선언해주었다
import org.springframework.jdbc.core.JdbcTemplate;
private JdbcTemplate jdbcTemplate;
멤버변수로만 선언했을때 실행시키면 동작되지 않는다
따라서 멤버변수에 @Autowired를 사용하여 의존성을 추가해준다
@Autowired
private JdbcTemplate jdbcTemplate;

현재 DAO를 새로 만들어서 복사했기 때문에 기존DAO에서 @Repository를 제거하고 새로만들어진 DAO에 적용해준다
@Repository
public class PlusBoardDAO {
🛠️객체 생성하기
jdbc템플릿 사용을 위해서는 멤버변수 선언 → 멤버변수에 의존성주입 →객체 생성의 단계를 거쳐야한다
현재 코드가 실행이 안되는 이유는 객체를 생성하지 않았기 때문이다
객체를 생성해주는일은 <bean>과 @component가 하는데 jdbc템플릿은 스프링에서 이미 만들어 놓은 기능이기 때문에
@component를 사용할수 없다 따라서 <bean>클래스를 사용하여 객체를 생성해줘야한다
따라서 xml에 빈클래스를 만들어서 객체를 생성할수 있고 이것이 xml이 사라질수 없는 이유이다
<bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
빈클래스를 만들때 DAO에서 임폴트한 주소를 가져서와서 jdbc템플릿 클래스에 넣고 id를 지정한다
이 빈클래스는 속성으로 데이터 소스라는 타입의 객체를 가지게 된다
🛠️데이터소스 생성과 세터주입
데이터 소스는 jdbc 템플릿에서 사용할 데이터를 주는역할을 한다 따라서 세터 주입이 필요하고 가져올 내용은 자바JDBC에 있는 내용을 가져오면 된다
- 드라이버 클래스 이름
- url
- user
- passworrd
<bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/db계정명" />
<property name="username" value="root" />
<property name="password" value="비밀번호" />
</bean>
빈클래스에 데이터소스 레퍼런스의 이름과 데이터소스를 생성할때 이름이 서로 같아야 사용할수 있다
'🐢 꼬부기 LV.1 | 개념•기초 > 💧물대포(핵심개념)' 카테고리의 다른 글
| 트랜잭션 이해하기 (0) | 2026.02.02 |
|---|---|
| JDBCtemplate 문법 (0) | 2026.01.28 |
| AOP - 스프링 부트식 @사용해보기 (0) | 2026.01.27 |
| 어드바이스 사용해보기 (0) | 2026.01.26 |
| AOP 설정 및 사용 (0) | 2026.01.23 |