JDBC 와 DBUtils 의 차이

설명: 컴 파일 환경 Eclipse (java) + MySql
JDBC 를 사용 하여 데이터 베 이 스 를 조회 하 는 데 가장 불편 한 점 은 JDBC 의 executeQuey 방법 은 결과 집합 (ResultSet) 을 얻 었 다 는 것 이다. 실제 응용 할 때 옮 겨 다 니 는 방법 으로 대상 을 ResultSet 에서 꺼 내야 한 다 는 것 이다.
//rs ResultSet  
rs = stmt.executeQuery();
// Result   List
int colCount = rs.getMetaData().getColumnCount();//         
while(rs.next()){
	Object[] oArr = new Object[colCount];//         ,                
	for (int i = 0; i < oArr.length; i++) {
		oArr[i] = rs.getObject(i+1);
	}
	list.add(oArr);//        list 
}
        ,        ,  ,   RowMapper   
   
   
  
public class UserRowMapper implements RowMapper {

	@Override
	public Caller getEntity(ResultSet rs) throws SQLException {
		User user=new User()
		
		user.setId(rs.getInt("C_ID"));
		user.setCno(rs.getString("C_NO"));
		user.setCname(rs.getString("C_NAME"));
		user.setPassword(rs.getString("C_PASSWORD"));
		
		return user;
	}

}
while(rs.next()){
	User user= rm.getEntity(User);//RowMapperrm=new UserRowMapper();
	list.add(user);//        list 

}

그러나 각 종 류 는 이에 대응 하 는 rowMapper 가 필요 합 니 다. 사용자 정의 클래스 가 많 을 때 도 힘 듭 니 다.
DBUtils 는 이 문 제 를 해결 할 수 있 습 니 다. 정의 만 필요 합 니 다.
4. 567913. 실행 할 때 들 려 주시 면 됩 니 다. 편리 합 니 다!!
ResultSetHandler> h = new BeanListHandler(Person.class);

하지만 사용 과정 에서 문제 가 발견 됐다.
DBUtils 를 사용 할 때 클래스 의 속성 이름과 데이터베이스 에 있 는 표 의 필드 이름 이 일치 해 야 합 니 다. 그렇지 않 으 면 조 회 된 데이터 와 클래스 의 속성 이 대응 할 수 없습니다!

좋은 웹페이지 즐겨찾기