검색결과 리스트
Android SQLite에 해당되는 글 1건
- 2012.03.02 [Android] SQL
글
안드로이드에서 데이터 베이스는 SQLite를 이용한다.
여기에서 SQLiteOpenHelper를 이용하여서 적용시키는데 간단히 코드로 구현을 하면 다음과 같다.
class DBHelper extends SQLiteOpenHelper{
public DBHelper(Context context){
super(context,"test.db",null,1);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE data(id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "first TEXT, second TEXT);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS data");
onCreate(db);
}
}
다음은 해당하는 내용의 메서드들의 설명이다.
메서드 | 내용 |
onCreat | DB가 처음 만들어 질 때 호출 되며 테이블 생성 및 초기 레코드 입력 |
onUpgrade | DB를 업그레이드 할 경우 호출. 기존 테이블을 삭제하고 새로 생성하거나 ALTER를 이용하여 DB를 수정 |
onOpen | DB를 열 때 이용 |
getReadableDatabase | 데이터를 읽기 위해 DB 열기 |
getWriteableDatabase | 읽고 쓰기 위한 DB 열기 |
close | DB 닫기 |
위 내용을 적용하여 CRUD 구문을 구현해보면 다음과 같다.
import android.app.Activity;
import android.app.Service;
import android.content.ContentValues;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Button;
import android.widget.TextView;
public class ImageViewActivity extends Activity{
DBHelper m_dbhelper;
EditText m_txt;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
m_dbhelper = new DBHelper(this);
m_txt = (EditText)findViewById(R.id.txt);
findViewById(R.id.insert).setOnClickListener(b_listener);
findViewById(R.id.delete).setOnClickListener(b_listener);
findViewById(R.id.update).setOnClickListener(b_listener);
findViewById(R.id.select).setOnClickListener(b_listener);
}
Button.OnClickListener b_listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SQLiteDatabase db;
ContentValues row;
switch(v.getId()){
case R.id.insert :
db = m_dbhelper.getWritableDatabase();
row = new ContentValues();
row.put("1", "2");
row.put("3", "4");
db.insert("data", null, row);
db.execSQL("INSERT INTO data VALUES (null,'5','6');");
db.close();
m_txt.setText("successed insert");
break;
case R.id.delete :
db = m_dbhelper.getWritableDatabase();
row = new ContentValues();
db.delete("data", null, null);
//db.execSQL("DELETE FROM data;");
db.close();
m_txt.setText("successed delete");
break;
case R.id.update :
db = m_dbhelper.getWritableDatabase();
row = new ContentValues();
row.put("first", "8");
db.update("data", row, "first='1'", null);
//db.execSQL("UPDATE data SET first = '8' WHERE first = '1';");
db.close();
m_txt.setText("successed update");
break;
case R.id.select :
db = m_dbhelper.getWritableDatabase();
Cursor cursor;
//cursor = db.query("data", new String[]{"first","second"},null,null,null,null,null);
cursor = db.rawQuery("SELECT first, second FROM data", null);
String result = "";
while(cursor.moveToNext()){
String first = cursor.getString(0);
String second = cursor.getString(1);
result+=(first+"="+second+"\n");
}
if(result.length()==0){
m_txt.setText("No Data");
}
else{
m_txt.setText(result);
}
cursor.close();
db.close();
break;
}
}
};
}
RECENT COMMENT