==> 구조
액티비티 ----> MySQLiteHandler ----> MySQLiteOpenHelper ----> sample.sqlite
==> 순서
가. - MySQLiteOpenHelper 클래스를 생성 (SQLiteOpenHelper 상속받아서)
- 생성자 작성
나. - MySQLiteHandler 클래스를 생성
- public static MySQLiteHandler open(Context context) 메서드 작성
( 이 메서드를 통해서 MySQLiteHandler 클래스의 생성자를 불러온다 )
- 입력, 수정, 삭제, 조회 에 해당되는 메서드 생성
다. - 메인액티비티에서 MySQLiteHandler를 통해서 데이터 처리
< MySQLiteOpenHelper 클래스 소스 코드 >
public class MySQLiteOpenHelper extends SQLiteOpenHelper { // 데이터베이스 생성 public MySQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } // 테이블 생성 public void onCreate(SQLiteDatabase db) { Log.i("xxx", "onCreate >>>>>>>>>>>>>>>....."); String sql = "create table person ( " + " _id integer primary key autoincrement , " + " name text , " + " age integer , " + " address text )"; db.execSQL(sql); }//end onCreate // 테이블 삭제 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.i("xxx", "onUpgrade >>>>>>>>>>>>>>>....."); String sql = "drop table if exists person"; db.execSQL(sql); onCreate(db); }//end onUpgrade }//end class
< MySQLiteHandler 클래스 소스 코드 >
public class MySQLiteHandler { MySQLiteOpenHelper helper; SQLiteDatabase db; // 초기화 작업 public MySQLiteHandler(Context context) { helper = new MySQLiteOpenHelper(context, "sample.sqlite", null, 1); } //open public static MySQLiteHandler open(Context context) { return new MySQLiteHandler(context); } //close public void close() { db.close(); } //저장 public void insert(String name, int age, String address) { db = helper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", name); values.put("age", age); values.put("address", address); db.insert("person", null, values); }//end insert //수정 public void update(String name, int age) { db = helper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("age", age); db.update("person", values, "name=?", new String[]{name}); }//end update //삭제 public void delete(String name) { db = helper.getWritableDatabase(); db.delete("person", "name=?", new String[]{name}); }//end delete //검색 public Cursor select() { db = helper.getReadableDatabase(); Cursor c = db.query("person", null, null, null, null, null, null); return c; }//end select }//end class
< SQLiteOpenHelperMainActivity 메인액티비티 소스 코드 >
public class SQLiteOpenHelperMainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 데이터베이스 연동 MySQLiteHandler handler = MySQLiteHandler.open(getApplicationContext()); // 데이터 저장 handler.insert("홍길동", 20, "서울"); handler.insert("이순신", 44, "전라"); handler.close(); // 데이터 수정 handler.update("홍길동", 55); handler.close(); // 데이터 삭제 handler.delete("이순신"); handler.close(); // 데이터 검색 Cursor c = handler.select(); startManagingCursor(c); while(c.moveToNext()) { int _id = c.getInt(c.getColumnIndex("_id")); String name = c.getString(c.getColumnIndex("name")); int age = c.getInt(c.getColumnIndex("age")); String address = c.getString(c.getColumnIndex("address")); String data = _id+" "+name+" "+age+" "+address; Log.i("xxx", data); //Log.i(태그, 출력텍스트) --> ddms 의 log 창에서 확인가능 }//end while handler.close(); }//end onCreate }//end class
'Dev. 안드로이드 > 참고소스' 카테고리의 다른 글
안드로이드 폰 오라클 데이터베이스와 연동하기 ( model 1 : jsp ) (138) | 2012.03.19 |
---|---|
toast 메세지 연속 출력 및 커스텀 뷰 토스트 표시하기 (0) | 2012.03.16 |
안드로이드 어플 종료시 back 키 두번 눌러서 끄기 참고 소스 (0) | 2012.03.16 |
안드로이드 XmlPullParser 사용 예제 (0) | 2012.03.16 |
무한 스크롤 적용 ViewPager 적용 예제 - FragmentPagerAdapterSampeActivity (1) | 2012.03.16 |