본문 바로가기
안드로이드

[Android] 6. 데이터베이스 - 데이터베이스 이해하기

qbang 2019. 8. 10.

안녕하세요 이번 시간에는 6강 데이터베이스의 첫번째 강의인 '데이터베이스 이해하기' 리뷰입니다.

개념을 알아보면서 실습한 내용을 덧붙여 알아보도록 하겠습니다!

 


안드로이드 앱에서는 SQLite라고 불리는 데이터베이스를 사용할 수 있습니다.

SQLite는 오픈소스로 만들어진 파일 기반의 데이터베이스입니다. pc에서도 사용할 수 있고, 화면에서 테이블 구조나 데이터를 확인할 수 있는 도구들도 제공됩니다.

앱에서는 데이터베이스가 하나의 파일로 만들어지고, 한 번 만들어 두면 만들어진 데이터베이스를 오픈하여 사용할 수 있습니다.

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="1. DB 오픈" />

        <EditText
            android:id="@+id/editText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:inputType="textPersonName"
            android:text="customer.db" />

    </LinearLayout>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#FFEB3B">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="#FFEB3B"
                android:textSize="24dp" />
        </LinearLayout>
    </ScrollView>
</LinearLayout>

 

MainActivity.java

package com.example.mydb;

import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import java.io.BufferedInputStream;

public class MainActivity extends AppCompatActivity {

    EditText editText;
    TextView textView;
    SQLiteDatabase database;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editText = (EditText) findViewById(R.id.editText);

        textView = (TextView) findViewById(R.id.textView2);

        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                String databaseName = editText.getText().toString();
                openDatabase(databaseName);
            }
        });
    }

    public void openDatabase(String databaseName){
        println("openDatabase() 호출됨");

        //DB 저장소 만듦
        database = openOrCreateDatabase(databaseName, MODE_PRIVATE, null);

        //DB가 제대로 생성되었는지 확인
        if(database != null){
            println("데이터베이스 오픈됨");
        }
    }
    public void println(String data){
        textView.append(data + "\n");
    }
}

위 코드에 대한 결과는 아래와 같습니다.

 

초기 화면
결과 화면

DB를 생성하고, 오픈하여 제대로 생성되었는지 확인하였습니다.

 

글 읽어주셔서 감사합니다 :)

댓글