투케이2K

105. (TWOK/UTIL) [Android/Java] S_SQLite - SQLite 데이터베이스 select , insert , update , delete 수행 클래스 본문

투케이2K 유틸파일

105. (TWOK/UTIL) [Android/Java] S_SQLite - SQLite 데이터베이스 select , insert , update , delete 수행 클래스

투케이2K 2022. 12. 7. 14:20

[설 명]

프로그램 : Android / Java

설 명 : S_SQLite - SQLite 데이터베이스 select , insert , update , delete 수행 클래스

 

[소스 코드]

 

package kr.co.two2k.manager;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class S_SQLite extends SQLiteOpenHelper {


    /**
     * // ------------------------------------
     * TODO [사용 방법 정의]
     * // ------------------------------------
     * S_SQLite.getSelectAll(A_Activity.this); //TODO 전체 목록 조회
     * S_SQLite.getSelectKey(A_Activity.this, "name"); //TODO 특정 KEY 조회
     * // ------------------------------------
     * S_SQLite.setInsertKeyValue(A_Activity.this, "name", "투케이"); //TODO 데이터 삽입
     * // ------------------------------------
     * S_SQLite.setUpdateKey(A_Activity.this, "name", "TWOK"); //TODO 특정 데이터 업데이트
     * // ------------------------------------
     * S_SQLite.getDeleteAll(A_Activity.this); //TODO 전체 데이터 삭제
     * S_SQLite.getDeleteKey(A_Activity.this, "name"); //TODO 특정 데이터 삭제
     * // ------------------------------------
     * */





    /**
     * // ------------------------------------
     * TODO [SQL LITE 테이블 (MY_TABLE) 구조 설명]
     * // ------------------------------------
     * [MY_KEY]   |    [MY_VALUE]
     * // ------------------------------------
     *   name     |      TWOK
     *    age     |        28
     *    sex     |         M
     * // ------------------------------------
     * */





    // TODO [SQLITE 사용에 필요한 전역 변수 선언 부분]
    public static final int DATABASE_VERSION = 1; // 데이터베이스 버전
    public static final String DATABASE_NAME = "S_SQLite.db"; // 데이터베이스 이름

    public static final String TABLE_NAME = "MY_TABLE"; // 테이블 이름
    //public static final String COLUMN_NAME_IDX = "MY_IDX"; // 컬럼 이름
    public static final String COLUMN_NAME_KEY = "MY_KEY"; // 컬럼 이름
    public static final String COLUMN_NAME_VALUE = "MY_VALUE"; // 컬럼 이름


    // 테이블 생성 쿼리문
    private static final String SQL_CREATE_ENTRIES =
            "CREATE TABLE " + TABLE_NAME + " (" +
                    //COLUMN_NAME_IDX + " INTEGER," +
                    COLUMN_NAME_KEY + " TEXT," +
                    COLUMN_NAME_VALUE + " TEXT)";

    // 테이블 삭제 쿼리문
    private static final String SQL_DELETE_ENTRIES =
            "DROP TABLE IF EXISTS " + TABLE_NAME;





    // TODO [SQLITE 클래스 생성자 초기화 및 메소드 재정의 실시]
    public S_SQLite(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(SQL_CREATE_ENTRIES);
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // This database is only a cache for online data, so its upgrade policy is
        // to simply to discard the data and start over
        db.execSQL(SQL_DELETE_ENTRIES);
        onCreate(db);
    }
    @Override
    public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        onUpgrade(db, oldVersion, newVersion);
    }





    //TODO [SQLITE 저장된 테이블 전체 목록 조회 실시 SELECT * FROM]
    public static void getSelectAll(Context context){
        // List Map 문자열 형식으로 저장된 전체 데이터 포맷
        ArrayList <Map> list = new ArrayList();
        try {
            SQLiteOpenHelper myDBHelper = new S_SQLite(context); // 데이터베이스 오픈
            SQLiteDatabase sqLiteDatabase = myDBHelper.getReadableDatabase(); // 데이터베이스 데이터 접근
            Cursor cursor = sqLiteDatabase.rawQuery(
                    "SELECT *  FROM " + String.valueOf(TABLE_NAME)
                            + " ORDER BY " + String.valueOf(COLUMN_NAME_KEY) + " ASC"
                    , null
            );
            while (cursor.moveToNext()){
                Map rawFormat = new HashMap();
                rawFormat.put("KEY", String.valueOf(cursor.getString(0))); // KEY 컬럼
                rawFormat.put("VALUE", String.valueOf(cursor.getString(1))); // VALUE 컬럼

                // 리턴 결과 배열에 삽입 실시
                list.add(rawFormat);
            }
            cursor.close();
            sqLiteDatabase.close();

            //*
            Log.i("---","---");
            Log.w("//===========//","================================================");
            Log.i("","\n"+"[SQLite >> getSelectAll :: SELECT ALL SUCCESS]");
            Log.i("","\n"+"[DATA :: "+String.valueOf(list.toString())+"]");
            Log.w("//===========//","================================================");
            Log.i("---","---");
            // */
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }





    //TODO [SQLITE 특정 데이터 값 조회 실시 - SELECT EQUALS]
    public static String getSelectKey(Context context, String key){
        String result = "";
        try {
            SQLiteOpenHelper myDBHelper = new S_SQLite(context); // 데이터베이스 오픈
            SQLiteDatabase sqLiteDatabase = myDBHelper.getReadableDatabase(); // 데이터베이스 데이터 접근
            Cursor cursor = sqLiteDatabase.rawQuery(
                    "SELECT *  FROM " + String.valueOf(TABLE_NAME)
                            + " WHERE " + String.valueOf(COLUMN_NAME_KEY) + " = ?"
                    , new String[] { key.trim() }
            );
            while (cursor.moveToNext()){
                result = String.valueOf(cursor.getString(1)); // VALUE 컬럼
            }
            cursor.close();
            sqLiteDatabase.close();

            //*
            Log.i("---","---");
            Log.w("//===========//","================================================");
            Log.i("","\n"+"[SQLite >> getSelectKey :: SELECT KEY SUCCESS]");
            Log.i("","\n"+"[INPUT [KEY] :: "+String.valueOf(key)+"]");
            Log.i("","\n"+"[RETURN [VALUE] :: "+String.valueOf(result)+"]");
            Log.w("//===========//","================================================");
            Log.i("---","---");
            // */
        }
        catch (Exception e){
            e.printStackTrace();
        }
        return String.valueOf(result);
    }





    //TODO [SQLITE 테이블에 정보 삽입 실시 - INSERT]
    public static void setInsertKeyValue(Context context, String key, String value){
        try {
            SQLiteOpenHelper myDBHelper = new S_SQLite(context); // 데이터베이스 오픈
            SQLiteDatabase sqLiteDatabase = myDBHelper.getWritableDatabase(); // 데이터베이스 데이터 접근
            sqLiteDatabase.execSQL(
                    "INSERT INTO " + String.valueOf(TABLE_NAME) + " VALUES " +
                     "('"+String.valueOf(key)+"' , '"+String.valueOf(value)+"')"
            );

            //*
            Log.i("---","---");
            Log.d("//===========//","================================================");
            Log.i("","\n"+"[SQLite >> setInsertKeyValue :: INSERT SUCCESS]");
            Log.i("","\n"+"[KEY :: "+String.valueOf(key)+"]");
            Log.i("","\n"+"[VALUE :: "+String.valueOf(value)+"]");
            Log.d("//===========//","================================================");
            Log.i("---","---");
            // */
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }





    //TODO [SQLITE 테이블에 저장된 특정 정보 업데이트 실시 - UPDATE EQUALS]
    public static void setUpdateKey(Context context, String key, String value){
        try {
            SQLiteOpenHelper myDBHelper = new S_SQLite(context); // 데이터베이스 오픈
            SQLiteDatabase sqLiteDatabase = myDBHelper.getWritableDatabase(); // 데이터베이스 데이터 접근
            sqLiteDatabase.execSQL(
                    "UPDATE " + String.valueOf(TABLE_NAME) + " " +
                            "SET " + String.valueOf(COLUMN_NAME_VALUE) + " = ? " + " " +
                            "WHERE " +String.valueOf(COLUMN_NAME_KEY)+ " = ? "
                            ,new String[] { String.valueOf(value.trim()) , key.trim() }
            );

            //*
            Log.i("---","---");
            Log.d("//===========//","================================================");
            Log.i("","\n"+"[SQLite >> setUpdateKey :: UPDATE KEY SUCCESS]");
            Log.i("","\n"+"[KEY :: "+String.valueOf(key)+"]");
            Log.i("","\n"+"[VALUE :: "+String.valueOf(value)+"]");
            Log.d("//===========//","================================================");
            Log.i("---","---");
            // */
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }





    //TODO [SQLITE 테이블에 저장된 전체 정보 삭제 실시 - DELETE]
    public static void getDeleteAll(Context context){
        try {
            SQLiteOpenHelper myDBHelper = new S_SQLite(context); // 데이터베이스 오픈
            SQLiteDatabase sqLiteDatabase = myDBHelper.getWritableDatabase(); // 데이터베이스 데이터 접근
            sqLiteDatabase.execSQL(
                    "DELETE FROM " + String.valueOf(TABLE_NAME)
            );

            //*
            Log.i("---","---");
            Log.e("//===========//","================================================");
            Log.i("","\n"+"[SQLite >> getDelete :: DELETE ALL SUCCESS]");
            Log.e("//===========//","================================================");
            Log.i("---","---");
            // */
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }





    //TODO [SQLITE 테이블에 저장된 특정 정보 삭제 실시 - DELETE EQUALS]
    public static void getDeleteKey(Context context, String key){
        try {
            SQLiteOpenHelper myDBHelper = new S_SQLite(context); // 데이터베이스 오픈
            SQLiteDatabase sqLiteDatabase = myDBHelper.getWritableDatabase(); // 데이터베이스 데이터 접근
            sqLiteDatabase.execSQL(
                    "DELETE FROM " + String.valueOf(TABLE_NAME) + " " +
                    "WHERE " +String.valueOf(COLUMN_NAME_KEY)+ " = ? "
                    ,new String[] { key.trim() }
            );

            //*
            Log.i("---","---");
            Log.e("//===========//","================================================");
            Log.i("","\n"+"[SQLite >> getDelete :: DELETE KEY SUCCESS]");
            Log.i("","\n"+"[KEY :: "+String.valueOf(key)+"]");
            Log.e("//===========//","================================================");
            Log.i("---","---");
            // */
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }


}// TODO [클래스 종료]

 


 

반응형
Comments