Contents

Develop
2017.06.14 13:02

[android] 간단한 SQLIite 예제

조회 수 1301 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

이 내용은 학습용으로는 적당하지만 요즘 실무에서는 거의 활용되지 않을 것이다. 최근엔 검증된 많은 서드파티에서 더 편리하고 좋은 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



?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
829 Develop 알고리즘 성능 분석 기준 hooni 2014.06.24 2775
828 Develop 아이 훌레시 작업중 ㅋㅋ secret hooni 2013.08.09 0
827 Develop 서기의 PHP 동영상 강의(싱싱해) hooni 2013.05.15 30977
826 Develop 사이버보안실무 수업 메모 secret hooni 2017.03.23 0
825 Develop 사이버보안실무 발표자료 (2017.06.08) file hooni 2017.06.05 1180
824 Develop 베지어 곡선(Bézier curve) 알고리즘(spline 곡선) 3 file hooni 2013.04.23 32838
823 Develop 밸런싱 로봇.. 최종.. (관련 논문도 첨부) ㅋㅋ file hooni 2013.04.23 22816
822 Develop 모터에 대한 pid 제어.. ㅎㅎ file hooni 2013.04.23 18873
821 Develop 링크들 보고 지울 내용 secret hooni 2019.11.21 0
820 Develop 리팩토링 계획안 file hooni 2017.05.15 734
819 Develop 레고 마인드스톰 NXT 수도쿠, 큐브 소스코드.. 20 file hooni 2013.04.23 81373
818 Develop 레고 NXT 마인드스톰 밸런싱 로봇 ㅎㅎ file hooni 2013.04.23 57709
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 71 Next
/ 71