[Android Studio-java] SQLite 사용법
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();
}
});