210202

[데이터베이스] SQLite로 로컬에 데이터 저장하고 조회하기 본문

Android/기능구현

[데이터베이스] SQLite로 로컬에 데이터 저장하고 조회하기

dev210202 2020. 6. 22. 16:53

데이터베이스는 보통 데이터들을 저장하는 용도로 사용된다.

데이터베이스는 테이블을 사용해서 데이터들을 저장하는데 이를 사용하기 위해서는 SQL문을 알아야한다.

 

안드로이드에서 데이터베이스를 만드는 법은 다음과같다.

1. SQLiteDatabase객체를 반환하는 openOrCreateDatabase 메소드를 통해서  데이터베이스를 오픈

2. SQliteDatabase객체의 execSQL 메소드를 호출하고 파라미터로 SQL문을 전달하여 SQL문을 실행시킴

예시

public void setDatabase(String databaseName){
	database = openOrCreateDatabase(databaseName, MODE_PRIVATE, null); 
    // database 변수는 미리 onCreate 전에 선언해줬다고 가정
    if(database != null){
    	String tableName = "user";
    	String sql = "create table " + tableName + "(_id integer PRIMARY KEY autoincrement, name text, age integer, mobile text)";
        database.execSQL(sql);
    }
}

 

데이터베이스에서 데이터를 추가하는 방법은 다음과 같다.

 

1. 데이터 추가하는 SQL문 작성

2. execSQL 메소드로 추가

예시

public void insertData(String name, int age, String mobile) {
        if (database != null) {
            String sql = "insert into customer(name, age, mobile) values(?, ?, ?)";
            Object[] params = {name, age, mobile};
            database.execSQL(sql, params);
        } 
}

 

데이터베이스에서 데이터를 조회하는 방법은 다음과 같다.

 

1. 데이터를 조회하는 SQL문 작성

2. Cursor 객체를 반환하는 rawQuery 메소드를 사용

3. Cursor객체를 이동시키면서 데이터 조회

 

예시

public void selectData(String tableName) {
        if (database != null) { 
            String sql = "select name, age, mobile from " + tableName;
            Cursor cursor = database.rawQuery(sql, null);
           
            for (int i = 0; i < cursor.getCount(); i++) {
                cursor.moveToNext();
                String name = cursor.getString(0);
                int age = cursor.getInt(0);
                String mobile = cursor.getString(2);
            }

            cursor.close();
        }
}
Comments