SQLite3 사용예제
안드로이드: SQLite3 사용예제1
ExternalStorage 외부저장장치 파일 생성 / 읽기 예제
InternalStorage 장치내부 파일 생성 / 읽기 예제
지난 두 포스팅에서 ExternalStorage 와 InternalStorage 를 사용하여 자료 저장하는 방법에 대한 예제를 나누었습니다. 이번 포스팅에서는 SQLite 를 활용한 자료 저장을 해보도록 하겠습니다.
안드로이드에는 모바일용으로 제작된 경량화된 DB인 SQLite3 가 있습니다.
C 언어로 엔진이 제작되어 가볍,고 안드로이드에선 SQLiteOpenHelper 클래스를 제공하여 이를 쉽게 다룰수 있게 합니다.
본 예제에선 SQLiteOpenHelper 를 상속한 별도의 클래스를 MySQLiteOpenHelper 를 만들고
MainActivity에서 이를 활용하여 테이블을 생성하고 insert / update / delete 를 해보겠습니다.
특별히 화면에는 보여주는건 없고, Log.d 를 사용하여 결과만 확인해보겠습니다.
[MySQLiteOpenHelper.java]
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class MySQLiteOpenHelper extends SQLiteOpenHelper { // 안드로이드에서 SQLite 데이터 베이스를 쉽게 사용할 수 있도록 도와주는 클래스 CursorFactory factory, int version) { super(context, name, factory, version); } @Override // 최초에 데이터베이스가 없을경우, 데이터베이스 생성을 위해 호출됨 db.execSQL(sql); } @Override // 데이터베이스의 버전이 바뀌었을 때 호출되는 콜백 메서드 onCreate(db); // 다시 테이블 생성 } |
[MainActivity.java]
public class MainActivity extends AppCompatActivity { private MySQLiteOpenHelper helper; String dbName = "st_file.db"; int dbVersion = 1; // 데이터베이스 버전 String tag = "SQLite"; // Log 에 사용할 tag super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // sqLite3 : 모바일 용으로 제작된 경량화 DB this, // 현재 화면의 제어권자 // // 데이터베이스 객체를 얻어오는 다른 간단한 방법 e.printStackTrace(); Log.e(tag, "데이터베이스를 얻어올 수 없음"); finish(); // 액티비티 종료 insert (); // insert 문 - 삽입추가 } // end of onCreate db.execSQL("delete from mytable where id=2;"); Log.d(tag, "delete 완료"); } void update() { db.execSQL("update mytable set name='Park' where id=5;"); Log.d(tag, "update 완료"); } void select() { Cursor c = db.rawQuery("select * from mytable;", null); while(c.moveToNext()) { int id = c.getInt(0); String name = c.getString(1); Log.d(tag,"id:"+id+",name:"+name); } } void insert () { db.execSQL("insert into mytable (name) values('Seo');"); db.execSQL("insert into mytable (name) values('Choi');"); db.execSQL("insert into mytable (name) values('Park');"); db.execSQL("insert into mytable (name) values('Heo');"); db.execSQL("insert into mytable (name) values('Kim');"); Log.d(tag, "insert 성공~!"); } } // end of class |
[실행화면 Logcat]
테이블을 생성하고 최초에 5개의 레코드를 insert 한뒤 update 와 delete 도 성공하여 다시 4개의 레코드를 Logcat 을 통해 보여줍니다.
출처: https://bitsoul.tistory.com/118 [Happy Programmer~]
'프로그래밍 > Android (Java)' 카테고리의 다른 글
Notification 진동 제거하기 (0) | 2019.07.10 |
---|---|
백그라운드 동작 (service + notification) (0) | 2019.07.08 |
[알림] addPreferencesFromResource 줄 처져 있을 때 (0) | 2019.07.04 |
TextView 줄간격, 자간, 장평 변경하기 (0) | 2019.07.02 |
구글맵 줌버튼 위치 조정 (0) | 2019.06.27 |