2014년 4월 12일 토요일

DB서버 연동(1)

http://day0429.dothome.co.kr/xe/index.php?mid=android&document_srl=819

안드로이드 앱을 만들던 중 DB와 서버 연동에 대해, 알아보다가 안드로이드에서는 JDBC를 지원안한다는점을 알게 되었다.
때문에, 안드로이드와 DB서버 간 1:1 연동은 불가 하다는 점.

해결책의 방법으로, 
1. DB서버에서 php등을 이용하여 XML파일로 바꿔주고 그 XML파일을 안드로이드에서 파싱하는 방법
2. DB파일을 생성해서 서버에 두고, 안드로이드에서 그 DB를 다운로드 시켜서 안드로이드 내부 DB에 저장시키는방법
을 알게되었다.

그 중 1번째 방법을 소개.

( php로 DB서버와 연동해서 XML 파일만드는건 따로 글을 게재. 이번에는 XML파일과 안드로이드 파싱에 대해 소개)

XML파일 준비
<order>

<name>test1</name>
<list>test</list>
<source>www.naver.com</source>

</order>


JAVA XML 파싱
boolean inname = false;
boolean inlist = false;
boolean insource = false;

String Name = "";
String List = "";
String SOURCE = "";

try {
                      //다운제한 풀기
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);

String xml = "서버 주소";
URL URL = new URL(xml);
InputStream in = URL.openStream();
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(in, "utf-8");

int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.END_DOCUMENT:
break;
case XmlPullParser.START_TAG:
if (parser.getName().equals("name")) {
inname = true;
} else if (parser.getName().equals("list")) {
inlist = true;
}else if (parser.getName().equals("source")) {
insource = true;
}
break;
case XmlPullParser.END_TAG:
break;
case XmlPullParser.TEXT:
if (inname) {
Name = parser.getText();
inname = false;
} else if (inlist) {
List = parser.getText();
inlist = false;
else if (insource) {
SOURCE = parser.getText();
insource = false;
}
break;
}
eventType = parser.next();
}
} catch (Exception e) {
Toast.makeText(this, "Parsing Fail", Toast.LENGTH_LONG).show();
}

즉, 태그 값으로 필터링하여 값을 자바변수에 적용시키는 것이다.
주의점은 다운제한을 풀어주어야한다는것

댓글 없음:

댓글 쓰기