1. DB에 있는 데이터를 불러와 리스트뷰에 뿌려줍니다
2. 딜리트 쿼리 실행 후 다시 DB에 있는 데이터를 활용하여 리스트뷰를 뿌려줍니다.
구상은 이러했지만 리스트뷰 갱신이안되네요
그리고 한가지 더 updateDB()함수에서 계속 에러로그를 남깁니다
10-12 02:15:43.058  32076-32076/com.example.admin.sqltest W/버튼 에러﹕ null
stmt.executeQuery(query1);
이 구문이 정상적으로 실행은 안되네요
쿼리는 적용이 되는데 다음으로 넘어가지가 않습니다.
package com.example.admin.sqltest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
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.Button;
import android.widget.ListView;
import android.os.AsyncTask;
public class MainActivity extends Activity {
    Connection conn = null;
    Statement stmt = null;
    ResultSet reset = null;
    ArrayList<String> list = new ArrayList<String>();
    ListView listview;
    ArrayAdapter<String> adapter;
    MyAsyncTask mTask;
    static String query = "select * from dbtest " ;
    static String query1 = "delete from dbtest where no=2";
            ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listview = (ListView) findViewById(R.id.listView);
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
        listview.setAdapter(adapter);
        findViewById(R.id.button).setOnClickListener(mClickListener);
    }
        Button.OnClickListener mClickListener = new View.OnClickListener() {
            public void onClick(View v) {
                switch (v.getId()) {
                    case R.id.button:
                        Log.i("", "버튼 호출됨");
                        Log.i("Connection","stmt 확인 : "+stmt);
                        updateDB();
                        break;
                }
            }
        };
    public void updateDB(){
        Log.i("", "updateDB() 함수 호출");
        try {
            stmt.executeQuery(query1);
/*
            while(reset.next()){
                final String str = reset.getString(1)+" "+reset.getString(2)+" "+reset.getString(3);
                list.add(str);
            }
            adapter.addAll(list);
            Log.i("", "어뎁터에 리스트 추가");
            adapter.notifyDataSetChanged();
            Log.i("", "화면 갱신 뚜둥");
*/
            // conn.close();
        }
        catch (Exception e)
        {
            Log.w("버튼 에러", "" + e.getMessage());
        }
    }
    @Override
    protected void onStart() {
        super.onStart();
        handler.sendEmptyMessage(0);
    }
    class MyAsyncTask extends AsyncTask<String, Void, ArrayList<String>>
    {
        @Override
        protected void onPreExecute(){
            super.onPreExecute();
        }
        @Override
        protected ArrayList<String> doInBackground( String... params){
            try {
                Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
                Log.i("Connection","MSSQL 라이브러리 로드");
                conn = DriverManager.getConnection("jdbc:jtds:sqlserver://xxx.xxx.xxx.184:1433/test","mesapp","dhc8700!?#");
                Log.i("Connection","MSSQL 접속 성공 : "+conn);
                stmt = conn.createStatement();
                Log.i("Connection","stmt 확인 : "+stmt);
                reset = stmt.executeQuery(query);
                while(reset.next()){
                    if ( isCancelled() ) break;
                    final String str = reset.getString(1)+" "+reset.getString(2)+" "+reset.getString(3);
                    list.add(str);
                }
               // conn.close();
                Log.i("list 내용 확인 함수 : ","" + list);
            }
            catch (Exception e)
            {
                Log.w("111Error connection", "" + e.getMessage());
            }
            return list;
        }
        @Override
        protected void onPostExecute(ArrayList<String> list){
            adapter.clear();
            adapter.addAll(list);
            adapter.notifyDataSetChanged();
            //handler.sendEmptyMessageDelayed(0, 1000);
        }
        @Override
        protected void onCancelled(){
            super.onCancelled();
        }
    }
    public Handler handler = new Handler(){
        public void handleMessage( Message msg){
            super.handleMessage(msg);
            mTask = new MyAsyncTask();
            mTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "");
        }
    };
}