Develop
2017.06.14 13:02
[android] 간단한 SQLIite 예제
조회 수 1478 댓글 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
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
1053 | PPT |
[ppt] iOS 플라랩#03(2015.04.27) 발표 자료
![]() |
hooni | 2015.04.24 | 1180 |
1052 | System/OS |
[mac] OS X 엘 캐피탄에서 Soudflower 사용하기
2 ![]() |
hooni | 2016.10.03 | 1186 |
1051 | System/OS | [mac] Homebrew/rvm/cocoapod setting | hooni | 2017.07.29 | 1187 |
1050 | Develop |
[ios][swift] 초간단 To-do Memo
![]() |
hooni | 2016.06.27 | 1195 |
1049 | Etc |
캘리포니아 운전면허 문제
![]() |
hooni | 2017.07.22 | 1195 |
1048 | Develop | [ios] 최상위 ViewController 가져오기 | hooni | 2015.10.12 | 1206 |
1047 | PPT |
[ppt] 정보보호관리 발표내용
![]() |
hooni | 2016.11.30 | 1209 |
1046 | System/OS |
[mac] VirtualBox 실행 스크립트와 bash_profile 설정
![]() |
hooni | 2020.07.08 | 1209 |
1045 | Develop |
[ios] FlckrFeed Example App (Swift)
![]() |
hooni | 2016.11.27 | 1213 |
1044 | Develop |
[ios] 동영상 플레이어 샘플 (for Local File)
![]() |
hooni | 2017.02.07 | 1214 |
1043 | Etc |
RSVP 란?
![]() |
hooni | 2017.11.22 | 1214 |
1042 | PPT |
[ppt] 정보보호관리 발표내용 #2
![]() |
hooni | 2016.12.08 | 1216 |