Programming/Android

[Android Studio-java] SQLite 사용법

mj73 2021. 7. 7. 23:43

SQLite?
모바일 환경에 최적화된 DB.

즉, 안드로이드 앱 안에 내장되어있는 DBMS를 말한다.

 


 

1. SQLite를 명령 프롬프트에서  접속

 

명령프롬프트 단축키는 윈도우키+R 한다음에 cmd를 입력함.

 

 

 1) 안드로이드에서 avd 실행

 2) 명령프롬프트에서 adb.exe 폴더로 이동 (위치는 \sdk\platform-tools\)

(만일 기본 값으로 설치했다면 c:\users\사용자명\AppData\Local\Android\SDK\platform-tools\ 폴더)

 


 cd c:\CookAndroid\SDK\platform-tools\

DIR adb.exe

 

adb root       //root 권한으로 adb 재시작

adb shell       //셸 실행해서 AVD 내부로 접근

cd \data\data\com.cookandroid.프로젝트명      //cd: 현재 폴더 변경

ls -l     //현재 파일 및 디렉토리 목록 출력

mkdir databases  //mkdir: 디렉터리 생성

cd databases   

pwd  //현재 디렉터리 경로 출력


 

1)데이터베이스 생성

sqlite3 testDB

 

2) 테이블 생성

CREATE TABLE 테이블명 (열이름1 데이터형식1(크기),  열이름2 데이터형식2(크기2) ...);

 

3) 데이터 입력

INSERT INTO 테이블명 VALUES (값1, 값2, 값3 ...);

*값이 string이면 ' ' 안에 적어야함.

 

4) 데이터 조회.활용

SELETE 열이름1, 열이름2 ... FROM 테이블이름 WHERE 조건;

 

 

 

 

 


 

2. SQLite 활용

 

SQLiteOpenHelper class

public class myDBHelper extends SQLiteOpenHelper {
  public myDBHelper(Context context){
    super(context, "groupDB", null, 1); //자동으로 생성되는 것
  }
  
  //table 생성
  public void onCreate(SQLiteDatabase db){
    db.execSQL("CREATE TABLE groupTBL (gName CHAR(20) PRIMARY KEY, gNumber INTEGER);");
    //형식 주의
  }
  
  //table 삭제,생성,초기화
  public void onUpgrade(SQLiteDatabase db, int oldVersion, intnewVersion){
  db.execSQL("DROP TABLE IF EXISTS groupTBL);
  onCreate(db);
  }
}

 

 

 

초기화 리스너

myHelper = new myDBHelper(this);
btnInit.setOnClickListener(new View.OnClickListener(){
  public void onClick(View v){
   sqlDB = myHelper.getWritableDatabase();
   myHelper.onUpgrade(sqlDB,1,2);
   sqlDB.close();
  }
});

 

 

입력 리스너

btnInsert.setOnClickListener(new View.OnClickListener(){
  public void onClic(View v){
    sqlDB = myHelper.getWritableDatabase();
    sqlDB.execSQL("INSERT INTO groupTBL VALUES ( ' "
      + edtName.getText().toString() + " '. "
      + edtNumber.getText().toString() ");");
    sqlDB.close();
  }
});

 

 

DB조회 리스너

btnSelect.setOnClickListener(new View.OnClickListener(){
  public void onClick(View v){
    sqlDB = myHelper.getReadableDatabase();
    Cursor cursor;
    cursor = sqlDB.rawQuery("SELECT * FROM groupTBL;" , null);
    
    String strNames = "그룹이름" +"\r\n" + "---" + "\r\n";
    String strNumbers = "인원" + "\r\n" + "---" + "\r\n";
    
    while(cursor.moveToNext()) {
      strNames += cursor.getString(0) + "\r\n";
      strNumbers += cursor.getString(1) +"\r\n";
    }
    
    edtNameResult.setText(strNames);
    edtNumberResult.setText(strNumbers);
    
    cursor.close();
    sqlDB.close();
  }
});