|
이번에는 데이터 삭제 및 갱신하는 방법에 대하여 알아본다.
기존에 테스트하던 앱을 제거 후 새로운코드로 재설치 하였다.
DB_Test.java
package pe.berabue.dbtest; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class DB_Test extends Activity { private DBManager mDBManager; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.btn_insert).setOnClickListener(mClickListener); findViewById(R.id.btn_delete).setOnClickListener(mClickListener); findViewById(R.id.btn_update).setOnClickListener(mClickListener); findViewById(R.id.btn_select).setOnClickListener(mClickListener); mDBManager = new DBManager(this); mDBManager.getReadableDatabase(); // mDBManager.getWritableDatabase(); mDBManager.close(); } Button.OnClickListener mClickListener = new View.OnClickListener() { public void onClick(View v) { switch(v.getId()) { case R.id.btn_insert: mDBManager.insert(mDBManager); break; case R.id.btn_delete: mDBManager.delete(mDBManager); break; case R.id.btn_update: mDBManager.update(mDBManager); break; case R.id.btn_select: mDBManager.select(mDBManager); break; } } }; }액티비티에 4개의 버튼을 구현해 놓고 각기 다른 기능을 넣어두었다.
4번째 버튼인 select버튼은 미구현.
DBManager.java
package pe.berabue.dbtest; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class DBManager extends SQLiteOpenHelper { public static final String DB_NAME = "dbtest.db"; public static final int DB_VERSION = 1; private SQLiteDatabase mDB; private String str; private int temp; public DBManager(Context context) { super(context, DB_NAME, null, DB_VERSION); str = "str_"; temp = 0; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE Android( _id INTEGER PRIMARY KEY AUTOINCREMENT," + "name TEXT, price INTEGER);"); db.execSQL("INSERT INTO Android VALUES (null, 'Cupcake' , 500 );"); db.execSQL("INSERT INTO Android VALUES (null, 'Donut' , 1000 );"); db.execSQL("INSERT INTO Android VALUES (null, 'Eclair' , 1500 );"); db.execSQL("INSERT INTO Android VALUES (null, 'Froyo' , 10000 );"); db.execSQL("INSERT INTO Android VALUES (null, 'Ginger bread' , 100000 );"); db.execSQL("INSERT INTO Android VALUES (null, 'Honeycomb' , 999999 );"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("INSERT INTO Android VALUES (null, 'Icecream Sandwich' , 1 );"); db.execSQL("INSERT INTO Android VALUES (null, 'Jellybean' , 2 );"); } @Override public void onOpen(SQLiteDatabase db) { super.onOpen(db); mDB = db; } public void insert(DBManager mDBManager) { mDBManager.getWritableDatabase(); mDB.execSQL("INSERT INTO Android VALUES (null, '"+ str +"', "+ temp +" );"); mDBManager.close(); str += temp; temp++; Log.v(null,"Insert DB : "+temp); } public void delete(DBManager mDBManager) { mDBManager.getWritableDatabase(); mDB.execSQL("DELETE FROM Android WHERE price = "+ (temp-1) +";"); mDBManager.close(); temp--; Log.v(null,"Delete DB : "+temp); } public void update(DBManager mDBManager) { mDBManager.getWritableDatabase(); mDB.execSQL("UPDATE Android SET price = "+ (temp+10) +" WHERE price = "+ (temp-1) +";"); mDBManager.close(); Log.v(null,"Update DB : "+temp); } public void select(DBManager mDBManager) { } }open();
DB를 열때 mDB에 객체를 저장시켜 놓는다.
insert();
DB를 읽기/쓰기 용으로 열고 name과 price를 입력시켜 테이블에 추가한다.
delete();
DB를 읽기/쓰기 용으로 열고 Android 테이블에 price가 temp-1인 데이터를 찾아 삭제시킨다.
update();
DB를 읽기/쓰기 용으로 열고 Android 테이블에 price가 temp-1인 데이터를 찾아 price를 temp+10값으로 변경시킨다.
main.xml
|
'Android > Databases' 카테고리의 다른 글
데이터베이스 Transaction 사용하기 (0) | 2011.07.26 |
---|---|
데이터베이스 검색 (0) | 2011.07.13 |
데이터베이스 업그레이드하기 (0) | 2011.07.03 |
데이터베이스 사용하기 (1) | 2011.07.02 |