안드로이드 - mssql db서버에서 가져온 데이터를 android프로그램의 listview에 뿌리리기 안드로이드 이야기2013. 7. 16. 21:57
2013/03/25 10:32 mssql db서버에서 가져온 데이터를 android프로그램의 listview에 뿌리리기 |
일주일정도 헤매다가 겨우 만들었습니다.. 참고하세요
JSP를 이용하여 안드로이드로 가져오려했는데 방법을 몰라헤매다가
안드로이드에서 직접 데이터베이스를 건드리게 했어요;.
아래 라이브러리를 추가해주셔야 함니다..
2013.2.18
andorid 4.1.2 에서 돌려보니 DB 연결이 안된다..
구글링한 결과 3.0 부터 메인 쓰레드에서 네트워크 사용을 하면 안된다는 거 같다.
그래서 AsyncTask를 사용하도록 바꾸었더니 동작한다.
따라서 아래 코드는 3.0 이하 에서만 동작합니다.
package com.example.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
ArrayList<String> list;
ArrayAdapter<String> adapter;
ListView listView;
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
list.clear();
query2();
adapter.notifyDataSetChanged();
}
};
TimerTask myTask = new TimerTask(){
@Override
public void run()
{
Log.i("test", "timer");
Message msg = handler.obtainMessage();
handler.sendMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list = new ArrayList<String>();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
listView = (ListView)findViewById(R.id.list);
listView.setAdapter(adapter);
// query2();
//
// 리스트뷰에 어댑터 연결
Timer timer = new Timer();
timer.schedule( myTask, 1000, 2000 );
}
public void query2()
{
Log.i("Android"," MSSQL Connect Example.");
Connection conn = null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
Log.i("Connection","MSSQL driver load");
conn = DriverManager.getConnection("jdbc:jtds:sqlserver://서버주소/DB이름","아이디","패스워드");
Log.i("Connection","MSSQL open");
Statement stmt = conn.createStatement();
ResultSet reset = stmt.executeQuery("select * from v_state");
//Print the data to the console
while(reset.next()){
//list.add(reset.getString(12)+" "+reset.getString(1)+" "+reset.getString(3));
list.add(reset.getString(12)+" "+reset.getString(1)+" "+reset.getString(4)+" "+reset.getString(5)+" "+reset.getString(6));
}
conn.close();
}
catch (Exception e)
{
Log.w("Error connection","" + e.getMessage());
}
}
}
'안드로이드 이야기' 카테고리의 다른 글
안드로이드 소스 파일 다운받기 (0) | 2014.08.15 |
---|---|
안드로이드 - mssql db서버에서 가져온 데이터를 android프로그램의 listview에 뿌리기 ( android 3.0 이상) (0) | 2013.07.16 |
안드로이드-Android File 속성 및 생성, 글쓰기, 읽기, 복사 하기 (0) | 2013.07.12 |
안드로이드 - weightsum (0) | 2013.06.12 |
안드로이드 - 오픈 소스 보기 (1) | 2013.06.05 |