Spring JDBC와 DTO, DAO (6)

Minkyeong Kim·2021년 11월 25일
0

[boostcourse] Web-Backend

목록 보기
36/55

delete, 한 건 select

1) RoleDaoSqls 클래스 수정

public static final String SELECT_BY_ROLE_ID = "SELECT role_id, description FROM role where role_id = :roleId";
public static final String DELETE_BY_ROLE_ID = "DELETE FROM role WHERE role_id = :roleId";
  • 위의 변수들을 추가하기

2) RoleDao 클래스 수정

public int deleteById(Integer id) {
		// Map 객체가 두번째 파라미터로 입력됨
		// 값이 하나만 들어오므로 BeanPropertySqlParameterSource 객체를 만드는 대신 singletonMap을 사용
		Map<String, ?> params = Collections.singletonMap("roleId", id);
		return jdbc.update(DELETE_BY_ROLE_ID, params);
	}
	
public Role selectById(Integer id) {
	try {
		Map<String, ?> params = Collections.singletonMap("roleId", id);
		// 한 건 가져오기 위해 queryForObject 메소드 사용
		return jdbc.queryForObject(SELECT_BY_ROLE_ID, params, rowMapper);
	}catch(EmptyResultDataAccessException e) {
		return null;
	}
  • delete, select 메소드를 추가

3) JDBCTest 클래스 수정

//select by id
int id = 201;
Role resultRole = roleDao.selectById(id);
System.out.println(resultRole);

//delete		
int delete_count = roleDao.deleteById(id);
System.out.println(delete_count + "건 삭제: "+ id);

0개의 댓글