달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
728x90
반응형

2013/03/25 10:32

mssql db서버에서 가져온 데이터를 android프로그램의 listview에 뿌리리기

일주일정도 헤매다가 겨우 만들었습니다.. 참고하세요

JSP를 이용하여 안드로이드로 가져오려했는데 방법을 몰라헤매다가

안드로이드에서 직접 데이터베이스를 건드리게 했어요;.

 

아래 라이브러리를 추가해주셔야 함니다..

 jtds-1.2.5.jar

 

 

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());

   }

 }

    

    

}

출처 : http://webnautes.tistory.com/entry/mssql-db%EC%84%9C%EB%B2%84%EC%97%90%EC%84%9C-%EA%B0%80%EC%A0%B8%EC%98%A8-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-android%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%98-listview%EC%97%90-%EB%BF%8C%EB%A6%AC%EA%B8%B0

 

728x90
반응형
:
Posted by mapagilove