Develop
2017.06.14 13:02
[android] 간단한 SQLIite 예제
조회 수 3155 댓글 0
이 내용은 학습용으로는 적당하지만 요즘 실무에서는 거의 활용되지 않을 것이다. 최근엔 검증된 많은 서드파티에서 더 편리하고 좋은 SQLite/DB 관련 라이브러리들을 제공하고 있다. 대부분 이런 라이브러리들은 쿼리(SQL)를 작성하지 않아도 되고 DB와 매핑되어 정의된 VO클래스에 값만 대입하면 자동으로 적용된다.
특정 라이브러리를 쓰지 않고 옛날 방식으로..
SQLite를 이용한 DB생성, Table 생성/삭제, Data 등록/수정/조회/삭제에 대한 예제이다.
간단한 만큼 DB를 생성하고 열기위한 openOrCreateDatabase() 메소드의 호출은 Activity에서만 가능하다.
Activity 외에 호출 가능하도록 개선된 방법은 여기에..
-> SQLiteOpenHelper 이용 https://hooni.net/83717
package com.example.databasetest;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
// 상수 관련
String dbName = "apList.db"; // name of Database;
String tableName = "apListTable"; // name of Table;
int dbMode = Context.MODE_PRIVATE;
// Database 관련 객체들
SQLiteDatabase db;
// GUI 관련
public Button btCreateDB, btCreateTable, btRemoveTable, btInsertData,
btRemoveData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btCreateDB = (Button) findViewById(R.id.btCreatDB);
btCreateTable = (Button) findViewById(R.id.btCreateTable);
btRemoveTable = (Button) findViewById(R.id.btRemoveTable);
btInsertData = (Button) findViewById(R.id.btInsertData);
btRemoveData = (Button) findViewById(R.id.btRemoveData);
db = openOrCreateDatabase(dbName,dbMode,null);
}
public void onClick(View v) {
int id = v.getId();
if (id == btCreateDB.getId()) {
//createDatabase(dbName,dbMode);
} else if (id == btCreateTable.getId()) {
createTable();
} else if (id == btRemoveTable.getId()) {
removeTable();
} else if (id == btInsertData.getId()) {
insertData("hahahehe");
} else if (id == btRemoveData.getId()) {
selectAll();
}
}
// Database 생성 및 열기
public void createDatabase(String dbName, int dbMode){
db = openOrCreateDatabase(dbName,dbMode,null);
}
// Table 생성
public void createTable(){
String sql = "create table " + tableName + "(id integer primary key autoincrement, "+"voca text not null)";
db.execSQL(sql);
}
// Table 삭제
public void removeTable(){
String sql = "drop table " + tableName;
db.execSQL(sql);
}
// Data 추가
public void insertData(String voca){
String sql = "insert into " + tableName + " values(NULL, '" + voca +"');";
db.execSQL(sql);
}
// Data 업데이트
public void updateData(int index, String voca){
String sql = "update " + tableName + " set voca = '" + voca +"' where id = "+index +";";
db.execSQL(sql);
}
// Data 삭제
public void removeData(int index){
String sql = "delete from " + tableName + " where id = "+index+";";
db.execSQL(sql);
}
// Data 읽기(꺼내오기)
public void selectData(int index){
String sql = "select * from " +tableName+ " where id = "+index+";";
Cursor result = db.rawQuery(sql, null);
// result(Cursor 객체)가 비어 있으면 false 리턴
if(result.moveToFirst()){
int id = result.getInt(0);
String voca = result.getString(1);
Toast.makeText(this, "index= "+id+" voca="+voca, 0).show();
}
result.close();
}
// 모든 Data 읽기
public void selectAll(){
String sql = "select * from " + tableName + ";";
Cursor results = db.rawQuery(sql, null);
results.moveToFirst();
while(!results.isAfterLast()){
int id = results.getInt(0);
String voca = results.getString(1);
Toast.makeText(this, "index= "+id+" voca="+voca, 0).show();
results.moveToNext();
}
results.close();
}
}
[참고] http://hatti.tistory.com/9
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|---|
| 109 | Develop | [ios] NSString, RegularExpression Find/Replace | hooni | 2017.04.14 | 6381 |
| 108 | Develop |
[ios] Facebook SDK 로그인 설명
|
hooni | 2017.04.19 | 9433 |
| 107 | Etc |
사이버보안실무 시험.
|
hooni | 2017.04.20 | 0 |
| 106 | Develop | [ios] 코코아 프로그래밍의 네이밍 룰(명명 규칙) | hooni | 2017.05.11 | 2932 |
| 105 | Develop |
리팩토링 계획안
|
hooni | 2017.05.15 | 2462 |
| 104 | System/OS | [windows] 윈도우즈 콘솔에서 정품인증 하는 방법 | hooni | 2017.05.24 | 7572 |
| 103 | Develop |
사이버보안실무 발표자료 (2017.06.08)
|
hooni | 2017.06.05 | 10096 |
| 102 | Develop |
캘리포니아 운전면허 족보
|
hooni | 2017.06.12 | 2944 |
| » | Develop | [android] 간단한 SQLIite 예제 | hooni | 2017.06.14 | 3155 |
| 100 | Develop | [android] SQLiteOpenHelper를 이용한 DBManager | hooni | 2017.06.14 | 3697 |
| 99 | Etc |
IT감사 기법 시험
|
hooni | 2017.06.14 | 3941 |
| 98 | Develop | [coding] Find all anagrams in a string | hooni | 2017.06.27 | 4027 |