Adventure Time - Finn 3
본문 바로가기
Spring

DAO var.2 사용

by hyun9_9 2024. 3. 15.

insert,update,delete를 먼저 제작
JdbcTemplate 를 사용해서 제작
jdbcTemplate.update()-> MemberDao의 맴버변수이다

jdbcTemplate는 insert,update,delete jdbcTemplate.update 하나로 수행한다 

int rs=pstmt.executeUpdate(); 이거랑 비슷한느낌

 

public boolean update(MemberDTO mDTO) {
		//얘가 MemberDao의 맴버변수이다
		int result=jdbcTemplate.update(UPDATE,mDTO.getMid(),mDTO.getPassword(),mDTO.getName(),mDTO.getRole());
		//jdbcTemplate는 모두 업데이트로 수행한다 
		//int rs=pstmt.executeUpdate(); 이걸 사용하는 거다		
		if(result<=0) {
			return false;
		}
		return true;
	}

 

insert, delete  도 위와 같이 사용하면 된다

selectOne 

객체 하나이기 때문에
jdbcTemplate.queryForObject(SELECTONE, args,new MemberRowMapper()); 사용한다

인자에 무엇이 들어갈지 모르기 떄문에 배열로 전달해준다
Object[] args= {mDTO.getMid(),mDTO.getPassword()};

 

public MemberDTO selectOne(MemberDTO mDTO) {
		
		Object[] args= {mDTO.getMid(),mDTO.getPassword()};
		
		//객체 하나이기 때문에
		return jdbcTemplate.queryForObject(SELECTONE, args,new MemberRowMapper());
		//인자에 무엇이 들어갈지 모르기 떄문에 배열로 전달해준다
		//오브젝트로 반환한다
		//그래서 타입을 자동 맵핑이 안되기때문에
		//MemberDTO로 바꿔줘야한다
		//output을 스스로 맵핑할수 없어서 calss를 만들어줬다
		
	}


하지만 jdbcTemplate.queryForObject 오브젝트로 반환한다

그래서 타입이 자동 맵핑이 안되기때문에
MemberDTO로 바꿔줘야한다
output을 스스로 맵핑할수 없어서 calss를 만들어줬다

 

MemberRowMapper는 자동으로 만들수 없다
강제해야하기 때문에 인터페이스로 받아온다
개발자의 편의를  위해 MemberRowMapper를 사용한다
class MemberRowMapper implements RowMapper<MemberDTO>{

    @Override
    public MemberDTO mapRow(ResultSet rs, int rowNum) throws SQLException {
        MemberDTO data=new MemberDTO();
        data.setMid(rs.getString("MID"));
        data.setPassword(rs.getString("PASSWORD"));
        data.setName(rs.getString("NAME"));
        data.setRole(rs.getString("ROLE"));
        return data;
    }

}

기존 DAO-> DAO02 로 변경

Impl 멤버변수 타입변경

'Spring' 카테고리의 다른 글

DispatcherServlet 모음  (0) 2024.03.17
트랜잭션  (1) 2024.03.16
DAO var.1 -> DAO var.2 설정  (0) 2024.03.14
@어노테이션을 이용한 AOP  (1) 2024.03.12
Advice 동작시점  (0) 2024.03.11