2011-02-14 3 views
1

자바 클래스로 작업 중이며 MySQL의 DB 테이블을 멤버 (속성)와 자바 코드로 연결하는 가장 쉬운 방법을 찾고 있습니다. "SELECT"쿼리를 실행 한 후에 resultSet을 얻었지만 결과 개체를 Java Object로 일반적으로 캐스팅하는 방법이 명확하지 않습니다.자바 객체를 MySql 테이블과 연결하기

예를 들면 : 나는이 개 자바 클래스가 - 학생 & 선생님, 나는 명령을 사용하고 싶습니다 :이 그런 식으로 작동하지 않습니다

Student student = (Student) rs.getObject(); 

감사합니다, 로이

답변

1

합니다. 다음과 같이해야합니다.

Student st = new Student(); 
st.setName(rs.getString("NAME")); 
st.setAverage(rs.getInt("SCORE")); 

여기서 NAME 및 SCORE는 열 이름입니다. doc도 도움이됩니다.

1

질문이 rs.getObject 인 경우.
호출 rs.getObject는 rs.getInt, rs.getString을 호출하는 일반적인 방법입니다.이 모든 메소드의 반환 값은 궁극적으로 Objects (Int, String etc ...)이기 때문입니다.
요청한 열 (선택 또는 열 이름의 주문 번호)을 반환합니다. 행에 해당하는 전체 bean이 아닙니다.
컴파일 타임에 반환 된 열의 유형을 모르는 경우 rs.getObject를 사용합니다.

JDBC ResultSet 객체에는 select 문에 해당하는 bean을 반환하는 마법 getObject 메소드가 없습니다.

당신은

  1. JBBC ResultSetMetaData에
  2. 자바 감상

의 조합으로 자신 만의 '가난한 사람의 ORM'를 개발할 수 있습니다하지만 그건 기존의 것을 사용하는 것보다 더 열심히 일입니다.

+0

감사합니다. Java Reflection을 사용하여 '열악한 ORM'을 개발하기 시작했으며 더 쉽고 빠른 솔루션이 있어야만하는 것처럼 보였습니다. 그러한 기존 솔루션 (ResultSetMetaData 및 Java Reflection)이 있습니까? –

2

일반 JDBC를 사용하여 쿼리를 실행하는 대신 eclipselink 구현을 사용하여 JPA을 사용하고 결과 세트에서 결과를 직접 손으로 매핑하는 것이 좋습니다 (오류가 발생하기 쉬운). JPA가 그 일을 할 것입니다!

관련 문제