Develop
2017.06.14 13:02

[android] 간단한 SQLIite 예제

Views 1319 Votes 0 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

이 내용은 학습용으로는 적당하지만 요즘 실무에서는 거의 활용되지 않을 것이다. 최근엔 검증된 많은 서드파티에서 더 편리하고 좋은 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
No. Category Subject Author Date Views
793 Develop [jsp][php] 간단한 강좌 자료.. file hooni 2003.04.23 8098
792 Develop [c] 학생명단 관리 프로그램 소스 ㅋㅋ 1 file hooni 2003.04.23 7759
791 Develop [c] 근의 공식으로 2차방정식 풀기.. file hooni 2003.04.23 7762
790 Develop [c] 이진트리(binary tree)의 운행.. hooni 2003.04.23 8253
789 Develop [c] 이진트리(binary tree)의 특성 file hooni 2003.04.23 9596
788 Develop [자료구조] 트리(tree) 용어정리 file hooni 2003.04.23 11056
787 Develop [c] 농구팀 점수 산출 프로그램 소스 file hooni 2003.04.23 7370
786 Develop [c] 단어 입력/수정 프로그램 소스 file hooni 2003.04.23 7014
785 Develop [c] 정사각배열의 서브 배열의 최대 값 구하기 file hooni 2003.04.23 7014
784 Develop [c] 이진트리(binary tree) 샘플소스 (삽입, 삭제, 운행) file hooni 2003.04.23 7798
783 Develop [java] 컴포넌트 배치 ㅡ.,ㅡ; hooni 2003.04.23 7145
782 Develop [html] 메타태그 사용예.. 은지나 바라~ hooni 2003.04.23 7225
781 Develop [c] 가위 바위 보 서버, 클라이언트 소스코드 file hooni 2003.04.23 8169
780 Develop [c] fork() 시스템 콜 사용 방법. hooni 2003.04.23 27581
779 Develop [c] 소켓 프로그래밍 요약.. hooni 2003.04.23 6962
778 Develop [c] 소켓주소 구조체에 대해.. hooni 2003.04.23 6722
Board Pagination Prev 1 2 3 4 5 6 ... 53 Next
/ 53