ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android Studio-java] SQLite 사용법
    Programming/Android 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();
      }
    });
Designed by Tistory.