안녕하세요 초보 개발자 입니다.
다름 아니오라 서버로 부터 db record들을 내려 받아서 db insert를 하는 것과 관련하여 질문 드립니다.
우선 기본적으로 서버에서 5개의 테이블에 대한 record를 받게 되어 있습니다.
A, B, C, D, E 요렇게 다섯개의 테이블(하나의 db)의 레코드를 받기위해 5번의 통신이 필요합니다.
어플 시작시 각 테이블 레코드를 받기위해 5번 서버에 request를 보내는 구조
그러면 응답으로 xml 로 응답을 받습니다.
여기서 xml 파싱을 pullparser를 사용합니다.
질문, 파싱을 하는데 main thread에서 new Thread(new Runnable)( 로 해서 파싱 작업을 하는데
이걸 5번을 해야하는데 대강 아래와 같이 합니다.
new Thread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
String xmlDataDbGame = "CMCODE02?xml=";
String xmlGservTabelData = "<vector><data><table value='TB_XXX1'/></data></vector>";
String enCoderGserv = URLEncoder.encode(xmlGservTabelData);
try {
URL xmlUrlGserv = new URL("serAddr+xmlDataDbGame+enCoderGserv);
pars(xmlUrlGserv);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
위에서 보듯이 table value값이 달라지면서 5번을 하는데 이거 저런 식으로 5번을 해줘야하는 건가요???
따로 class를 꺼내서
CreateDb cd1 = new CreateDb();
cd1.gameDbCreate.start();
CreateDb cd2 = new CreateDb();
cd2.aTypeDbCreate.start();
CreateDb cd3 = new CreateDb();
cd3.gServDbCreate.start();
CreateDb cd4 = new CreateDb();
cd4.iTypeDbCreate.start();
CreateDb cd5 = new CreateDb();
cd5.siteDbCreate.start();
저런 식으로 작업을 하려 하는데 꼭 맨 처음 여기서는 cd1의 작업이 db insert를 하지 않네요...
5개의 쓰레드 중 무조건 소스의 첫 번째 쓰레드만 작업을 하지 않는데 도대체 문제가 뭔지 도움 요청 드립니다.
아니면 5개의 테이블에 작업을 하는 다른 방법이라도 도움 요청 드립니다