[완료] JDBC, resultset을 client로 전송하기.
글쓴이: nephro / 작성시간: 수, 2010/11/24 - 1:54오후
안녕하세요?
진료단에서 사용중인 APM을 이용한 진료프로그램을 자바로 바꾸려고 공부하는 중입니다.
전문분야가 전혀 다르기때문에 책을 사놓고 뒤적이면서 힘겹게 진행중입니다 -_-
3 tire model로 프로그래밍하고 있는데, 서버측에서 얻어진 DB resultSet을 client로 전송하려고 합니다.
client에서는 resultSet을 풀어서 화면에 표시하구요.
ObjectOutputStream, ObjectInputStream을 이용해서 TCP 소켓으로 class 인스턴스를 넘기는것까지는 성공했습니다.
그런데 resultSet을 class에 담아서 보내려했지만 잘 안되네요.
제 생각에는
1. resultSet을 통째로 옮기고 client에서 푸는게 제일 좋아보입니다.
2. 안된다면 resultSet을 서버측에서 풀어서 LinkedList 에 다시 담아 client로 보내는 것도 있을것 같구요..
(LinkedList변환도 복잡할것 같아요.. ㅠ.ㅠ)
3.정 안되면 각 row를 매번 class에 옮겨 담아서 전송해줘야 할까요?
혹시 첫번째 방법으로 전송할수 있을런지요?
미리 감사드립니다.
Forums:
오래된 기억이지만 몇자 남겨 봅니다.
안녕하세요.
ObjectOutputStream 과 ObjectInputStream을 이용하신다는것을 보니 송수신 측이 전부 Java로 작성되어있나 보군요.
Java관련 일을 손 놓은지 좀 되서 벌써 가물가물 합니다만, 일단 ObjectOutputStream을 이용하신다는 가정하여 (Java to Java) 말씀 드리겠습니다.
ResultSet Class는 Serialable interface로 구현되어 있지 않습니다.
좀 쉽게(?) 표현하자면 이말은 제가 서류가방에 종이를 찌그려 넣고 나중에 끄낼때 다시 그 형태를 원복 할 수 없다는 이야기가 되겠구요. 물론 아시겠죠. :-)
그래서 아주 먼 예전 기억으로는 RowSet Class를 사용하였습니다.
Java Bean 형태로 reflection을 이용하여 setter getter 넣어서 스트림으로 실어 보내고 받는 쪽에서 deserialize 한 기억이 있습니다.
물론 이때 DB class 와 Bean Class O/R Mapping이 되어 있어야겠죠.
공부하시는 중이라고 하시고 현재 Client <-> Server 가 Java로 되어 있는듯 하니 아예 이참에 JRMP를 이용한 RMI을 써 보시는건 어떠신지요?
만약, 그러기엔 시간적 제약이 따르신다면 우선 먼저 입출력 스트림을 socket이 아닌 file을 대상으로 테스트 해보시는걸 권장합니다.
친절한 답글 감사드립니다^^
구글링 마구마구 하다보니, ResultSet 자체로는 전송불가라는 글이 있더군요.
님의 말씀이 맞습니다.
전 주로 데비안 시스템에서 작업하고, 우리 팀들은 모두가 MS윈도우 환경이라, 시스템 독립적인 프로그램을 생각하다가 자바를 떠올렸답니다.
Bean 이야기도 간간이 나오던데, 제가 아직 이해하지 못하고 있구요,
JRMP/RMI도 모르는 이야기인데 책을 찾아보도록 하겠습니다.
답변에 감사드립니다.
일단은 쉬운 세팅으로 ResultSet을 class 배열에 담아 보내볼 생각입니다.
감사합니다.
자유를 꿈꾸는자 고개를 들어 하늘을 보라.
댓글 달기