728x90
Ex 7-4 실습. JdbcTemplate.queryForObject() 실행
- query() 결과가 1개일 경우 queryForObject() 메소드를 사용하는 것이 더 효율적.
- 다만, 이 쿼리 실행결과의 행 개수가 반드시 1이어야 함. 아닐 경우 Exception 발생함
//ex 7-4 MemberDao 에서 int count() 메소드 추가한 부분
public int count() {
Integer count = jdbcTemplate.queryForObject(
"select count(*) from MEMBER", Integer.class);
return count;
}
Ex 7-5 실습. JdbcTemplate.update() 사용
- MemberDao 에 public void update(Member member) 메소드 구현할 것
public void update(Member member) { //Ex7-5 실습에 MemberDao객체에 추가한 메소드
jdbcTemplate.update(
"update MEMBER set NAME = ?, PASSWORD = ? where EMAIL = ?",
member.getName(), member.getPassword(), member.getEmail());
}
-Ex7_5 객체의 main() 에서 변경 처리 후 변경 내용 확인
- 데이터베이스 상에서도 변경 내용 확인
Ex 7-6 실습. DB 테이블에 update 처리하기
- MemberDao 클래스에 public void insert(final Member member) 메소드 추가
-main() 안에서 테이블에 업데이트할 Member 객체를 생성한 뒤, insert(member) 처리할 것
//Ex 7-6 실습 추가 메소드
public void insert(Member member) {
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection con)
throws SQLException {
// 파라미터로 전달받은 Connection을 이용해서 PreparedStatement 생성
PreparedStatement pstmt = con.prepareStatement(
"insert into MEMBER (EMAIL, PASSWORD, NAME, REGDATE) " +
"values (?, ?, ?, ?)",
new String[] { "ID" });
// 인덱스 파라미터 값 설정
pstmt.setString(1, member.getEmail());
pstmt.setString(2, member.getPassword());
pstmt.setString(3, member.getName());
pstmt.setTimestamp(4,
Timestamp.valueOf(member.getRegisterDateTime()));
// 생성한 PreparedStatement 객체 리턴
return pstmt;
}
}, keyHolder);
Number keyValue = keyHolder.getKey();
member.setId(keyValue.longValue());
}
- main() 에서 Member 객체 추가한 뒤, 변형된 Id = 3 으로 출력된다.
-실제로 데이터베이스에도 Member 가 하나 더 추가된 것을 확인할 수 있다.
728x90
'Web(웹)_관련 공부 모음 > [학교]_STS_Spring_실습' 카테고리의 다른 글
[개념]_Spring JDBC , Mapper 활용 데이터 처리 (0) | 2022.05.12 |
---|---|
[개념]_@Transactional 트랜잭션 처리 (0) | 2022.05.11 |
[개념]_Spring _DB 연동 (0) | 2022.05.11 |
[학교] cmd에서 spring boot 실행 (0) | 2022.05.04 |
[학교]_9주차_스프링 JDBC 실습 (0) | 2022.05.03 |