본문 바로가기
🌐OS/AOS

[AndroidStudio] SQLite

by inbeom 2023. 8. 20.
728x90
반응형

 💡 SQLite

MySQL나 PostgreSQL와 같은 데이터베이스 관리 시스템이지만, 서버가 아니라 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다.

 

사용 방법!

  • SQL Helper를 사용하여 데이터베이스 생성 - onCreate, onUpgrade 재정의 & 삽입, 삭제 메서드 정의

DatabaseOpenHelper 클래스 생성

public class DatabaseOpenHelper extends SQLiteOpenHelper {
    public static final String tableName = "Users";

    public DatabaseOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        Log.i("tag","db 생성_db가 없을때만 최초로 실행함");
        createTable(db);
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVer, int newVer) {
    }
    public void createTable(SQLiteDatabase db){
        String sql = "CREATE TABLE " +tableName+ "(id text, pw text, name text, age integer, height integer, weight integer, gender text, run integer, login text, date text)";
        try {
            db.execSQL(sql);
        }catch (SQLException e){
        }
    }

    public void insertRecord(SQLiteDatabase db, String id, String date, int time, double distance, int step, double kcal){
        Log.i("tag","러닝 종료시 실행 (기록저장)");
        db.beginTransaction();
        try {
            String sql3 = "INSERT INTO " +tableNameRecord+ "(id, date, time, distance, step, kcal)" + "values('"+ id +"', '"+ date +"', "+ time +", "+distance+", "+step+", "+kcal+")";
            db.execSQL(sql3);
            db.setTransactionSuccessful();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            db.endTransaction();
        }
    }

}
  • 필요 Activity (java)에서 정의 및 사용
int version = 1;
DatabaseOpenHelper helper;
SQLiteDatabase database;
String sql;
Cursor cursor;

dbHelper = new DatabaseOpenHelper(this, "mydatabase.db", null, 1);
db = dbHelper.getWritableDatabase();
// 데이터 제거
dbHelper.deleteInfo(db, Contact);

// 데이터 검색 및 추출
sql = "SELECT * FROM "+ helper.tableName+ " WHERE login = '1'";
cursor = database.rawQuery(sql, null);
cursor.moveToNext();   // 첫번째에서 다음 레코드가 없을때까지 읽음
id = cursor.getString(0);
// 데이터 업데이트
database.execSQL("UPDATE Record SET " +
        "time="+time+", distance="+distance+", step="+step+", kcal="+kcal+
        " WHERE id = '"+id+"' AND date = '"+dateNow+"'");

 

SQLite를 사용하여 데이터 저장 | Android 개발자 | Android Developers

 

SQLite를 사용하여 데이터 저장  |  Android 개발자  |  Android Developers

DataStore는 로컬 데이터를 저장하는 최신 방법을 제공합니다. SharedPreferences 대신 DataStore를 사용해야 합니다. 자세한 내용은 DataStore 가이드를 참고하세요. SQLite를 사용하여 데이터 저장 컬렉션을

developer.android.com

 

728x90
반응형

'🌐OS > AOS' 카테고리의 다른 글

[AndroidStudio] PHP 외부 DB연결  (0) 2023.08.20
[AndroidStudio] TMap API  (0) 2023.08.20
[AndroidStudio] RecyclerView  (0) 2023.08.20
[AndroidStudio] Fragment  (0) 2023.08.20
[AndroidStudio] 에러 노트  (0) 2023.08.20