Notice
Recent Posts
Recent Comments
Link
투케이2K
118. (TWOK/UTIL) [Android/Java] - S_SQLite : SQLite DB 앱 데이터 베이스 select , insert , update , delete 본문
투케이2K 유틸파일
118. (TWOK/UTIL) [Android/Java] - S_SQLite : SQLite DB 앱 데이터 베이스 select , insert , update , delete
투케이2K 2023. 8. 12. 22:16[설 명]
프로그램 : Android / Java
설 명 : S_SQLite : SQLite DB 앱 데이터 베이스 select , insert , update , delete
[소스 코드]
package com.example.javaproject;
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 [클래스 설명]
* // --------------------------------------------------------------------------------------
* 1. 모바일 내부 데이터 저장 수행 클래스 (앱 종료 시에도 유지 / 앱 삭제 시 초기화)
* // --------------------------------------------------------------------------------------
* */
/**
* // --------------------------------------------------------------------------------------
* // TODO [빠른 로직 찾기 : 주석 로직 찾기]
* // --------------------------------------------------------------------------------------
* // [SEARCH FAST] : getSelectAll : SQLITE 저장된 테이블 전체 목록 조회 실시 SELECT * FROM
* // --------------------------------------------------------------------------------------
* // [SEARCH FAST] : getSelectKey : SQLITE 특정 데이터 값 조회 실시 - SELECT EQUALS
* // --------------------------------------------------------------------------------------
* // [SEARCH FAST] : setInsert : SQLITE 테이블에 정보 삽입 실시 - INSERT
* // --------------------------------------------------------------------------------------
* // [SEARCH FAST] : setUpdateKey : SQLITE 테이블에 저장된 특정 정보 업데이트 실시 - UPDATE EQUALS
* // --------------------------------------------------------------------------------------
* // [SEARCH FAST] : getDeleteAll : SQLITE 테이블에 저장된 전체 정보 삭제 실시 - DELETE
* // --------------------------------------------------------------------------------------
* // [SEARCH FAST] : getDeleteKey : SQLITE 테이블에 저장된 특정 정보 삭제 실시 - DELETE EQUALS
* // --------------------------------------------------------------------------------------
*
* // --------------------------------------------------------------------------------------
*
* // --------------------------------------------------------------------------------------
*
* // --------------------------------------------------------------------------------------
*
* // --------------------------------------------------------------------------------------
*/
/**
* // --------------------------------------------------------------------------------------
* TODO [사용 방법 정의]
* // --------------------------------------------------------------------------------------
* S_SQLite.getSelectAll(A_Activity.this); // TODO 전체 목록 조회
* S_SQLite.getSelectKey(A_Activity.this, "name"); // TODO 특정 KEY 조회
* // --------------------------------------------------------------------------------------
* S_SQLite.setInsert(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 = "TWOK_TABLE"; // 테이블 이름
//public static final String COLUMN_NAME_IDX = "MY_IDX"; // 컬럼 이름
public static final String COLUMN_NAME_KEY = "TWOK_KEY"; // 컬럼 이름
public static final String COLUMN_NAME_VALUE = "TWOK_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 [SEARCH FAST] : getSelectAll : 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();
// [로그 출력]
S_Log._D_("SQLITE 저장된 테이블 전체 목록 조회 실시", new String[]{
String.valueOf(list.toString())
});
}
catch (Exception e){
e.printStackTrace();
}
}
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : getSelectKey : 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();
// [로그 출력]
S_Log._D_("SQLITE 특정 데이터 값 조회 실시", new String[]{
"INPUT [KEY] :: " + String.valueOf(key),
"RETURN [VALUE] :: " + String.valueOf(result)
});
}
catch (Exception e){
e.printStackTrace();
}
return String.valueOf(result);
}
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : setInsert : SQLITE 테이블에 정보 삽입 실시 - INSERT
// -----------------------------------------------------------------------------------------
public static void setInsert(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)+"')"
);
// [로그 출력]
S_Log._W_("SQLITE 테이블에 정보 삽입 실시", new String[]{
"INPUT [KEY] :: " + String.valueOf(key),
"INPUT [VALUE] :: " + String.valueOf(value)
});
}
catch (Exception e){
e.printStackTrace();
}
}
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : setUpdateKey : 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() }
);
// [로그 출력]
S_Log._W_("SQLITE 테이블에 저장된 특정 정보 업데이트 실시", new String[]{
"INPUT [KEY] :: " + String.valueOf(key),
"INPUT [VALUE] :: " + String.valueOf(value)
});
}
catch (Exception e){
e.printStackTrace();
}
}
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : getDeleteAll : 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)
);
// [로그 출력]
S_Log._E_("SQLITE 테이블에 저장된 전체 정보 삭제 실시", null);
}
catch (Exception e){
e.printStackTrace();
}
}
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : getDeleteKey : 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[] { String.valueOf(key).trim() }
);
// [로그 출력]
S_Log._E_("SQLITE 테이블에 저장된 특정 정보 삭제 실시", new String[]{
"INPUT [KEY] :: " + String.valueOf(key)
});
}
catch (Exception e){
e.printStackTrace();
}
}
} // TODO [클래스 종료]
반응형
'투케이2K 유틸파일' 카테고리의 다른 글
Comments