Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

방카@Dev

[Spring]JDBC Template 정리 본문

BackEnd/Spring

[Spring]JDBC Template 정리

방카킴 2024. 6. 20. 18:13

1. <pom.xml>  Dependency 등록

- JdbcTemplate은 spring-jdbc에 포함되어 있음

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>    
    <version>${org.springframework-version}</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.13</version>
</dependency>

 

2. <servlet-context.xml> JdbcTemplate 스프링 빈 등록

<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	
	<beans:property name = "driverClassName" value = "com.mysql.cj.jdbc.Driver"/>
	<beans:property name = "url" value ="jdbc:mysql://localhost:3306/model2?serverTimezone=UTC&amp;useSSL=false"/>
	<beans:property name = "username" value="root"/>
	<beans:property name = "password" value="qwe123!@#"/>
	
</beans:bean>
	
<beans:bean name="template" class="org.springframework.jdbc.core.JdbcTemplate">
	<beans:property name = "dataSource" ref="dataSource"/>
</beans:bean>

 

3. JdbcTemplate 메서드 정리

 

(1) update(sql, ?에 들어갈 값) : 데이터를 변경할 때 사용(insert, update, delete)

- 반환 타입이 int이므로 영향받은 로우 수를 반환

- ?에 바인딩할 파라미터를 순서대로 전달

 

(2) queryForObject(sql, 반환받을 데이터 타입, ?에 들어갈 값 )

- 결과값이 하나일 때 사용

String sql = "select BOARD_PASS from board where BOARD_NUM=?";

String dbPass = template.queryForObject(sql, String.class, num);

(3) query(sql, 반환받을 데이터 타입, ?에 들어갈 값)

(List<BoardBean>)template.query(query, 
		new BeanPropertyRowMapper<BoardBean>(BoardBean.class),startrow, endrow);

 

- 결과값이 하나 이상일 때 사용

- RowMapper는 데이터베이스의 반환 결과인 ResultSet을 객체로 변환

- 결과값이 없으면 빈 컬렉션 반환