[android] 안드로이드 SQLite 데이터베이스와 데이터 보고서 생성

안드로이드 SQLite 데이터베이스 생성하기

어플리케이션이 SQLite 데이터베이스를 사용하기 위해서는 SQLiteOpenHelper 클래스를 확장하여 데이터베이스를 생성하고 업그레이드하는 코드를 작성해야 합니다. 예를 들어, 다음은 데이터베이스를 생성하는 간단한 코드입니다.

public class MyDBHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "myDatabase.db";
    private static final int DATABASE_VERSION = 1;

    public MyDBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE IF NOT EXISTS myTable (id INTEGER PRIMARY KEY, name TEXT)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS myTable");
        onCreate(db);
    }
}

위의 코드에서는 MyDBHelper 클래스를 생성하여 데이터베이스를 초기화하고, onCreate 메서드에서 데이터베이스의 테이블을 생성하고, onUpgrade 메서드에서 데이터베이스의 버전을 관리하고 업그레이드하는 과정을 정의하였습니다.

데이터 저장 및 보고서 생성하기

SQLite 데이터베이스에 데이터를 저장하고 보고서를 생성하기 위해서는 데이터의 삽입, 갱신, 삭제 및 조회 등의 기본적인 CRUD(Create, Read, Update, Delete) 기능을 구현해야 합니다.

또한, 보고서를 생성하기 위해서는 데이터베이스에서 필요한 정보를 조회하고, 그 정보를 활용하여 원하는 형식의 보고서를 생성하는 기능을 구현해야 합니다.

예를 들어, 다음은 데이터를 조회하고 보고서를 생성하는 간단한 예시입니다.

public class ReportGenerator {
    private SQLiteDatabase db;

    public ReportGenerator(SQLiteDatabase db) {
        this.db = db;
    }

    public String generateReport() {
        Cursor cursor = db.rawQuery("SELECT * FROM myTable", null);
        StringBuilder report = new StringBuilder();
        if (cursor.moveToFirst()) {
            do {
                String name = cursor.getString(cursor.getColumnIndex("name"));
                report.append(name).append("\n");
            } while (cursor.moveToNext());
        }
        cursor.close();
        return report.toString();
    }
}

위의 코드에서는 ReportGenerator 클래스를 생성하여 데이터베이스에서 필요한 정보를 조회하고, 그 정보를 활용하여 보고서를 생성하는 기능을 구현하였습니다.

이제 여러분은 안드로이드 앱에서 SQLite 데이터베이스를 생성하고 데이터를 저장하는 방법, 그리고 해당 데이터를 활용하여 보고서를 생성하는 방법을 알게 되었습니다. 안드로이드 앱을 개발하면서 데이터베이스와 보고서 생성을 다뤄야 할 때, 이러한 기능을 구현하는데 도움이 될 것입니다.

참고문헌: