From 9263f3262cdbe9f37cbc116745c9e9c547a7f57b Mon Sep 17 00:00:00 2001 From: k-kbk Date: Mon, 20 May 2024 14:27:41 +0900 Subject: [PATCH] =?UTF-8?q?feat=20|=20DB=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/jaringobi/MainActivity.kt | 4 ++ .../java/com/example/jaringobi/db/Contract.kt | 46 +++++++++++++++++++ .../java/com/example/jaringobi/db/DBHelper.kt | 34 ++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 app/src/main/java/com/example/jaringobi/db/Contract.kt create mode 100644 app/src/main/java/com/example/jaringobi/db/DBHelper.kt diff --git a/app/src/main/java/com/example/jaringobi/MainActivity.kt b/app/src/main/java/com/example/jaringobi/MainActivity.kt index a867f61..11cbd7f 100644 --- a/app/src/main/java/com/example/jaringobi/MainActivity.kt +++ b/app/src/main/java/com/example/jaringobi/MainActivity.kt @@ -3,14 +3,18 @@ package com.example.jaringobi import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.example.jaringobi.databinding.ActivityMainBinding +import com.example.jaringobi.db.DBHelper class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding + private lateinit var dbHelper: DBHelper override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) + + dbHelper = DBHelper(this) } } diff --git a/app/src/main/java/com/example/jaringobi/db/Contract.kt b/app/src/main/java/com/example/jaringobi/db/Contract.kt new file mode 100644 index 0000000..e43c7ff --- /dev/null +++ b/app/src/main/java/com/example/jaringobi/db/Contract.kt @@ -0,0 +1,46 @@ +package com.example.jaringobi.db + +import android.provider.BaseColumns + +object Contract { + const val DATABASE_NAME = "jaringobi.db" + const val DATABASE_VERSION = 1 + + object GoalEntry : BaseColumns { + private const val TABLE_NAME = "goals" + private const val COLUMN_YEAR = "year" + private const val COLUMN_MONTH = "month" + private const val COLUMN_AMOUNT = "amount" + private const val COLUMN_CURRENT_SPENT = "current_spent" + + const val CREATE_TABLE = + "CREATE TABLE $TABLE_NAME" + + "(" + + "${BaseColumns._ID} INTEGER PRIMARY KEY AUTOINCREMENT," + + "$COLUMN_YEAR INTEGER NOT NULL, " + + "$COLUMN_MONTH INTEGER NOT NULL, " + + "$COLUMN_AMOUNT INTEGER NOT NULL, " + + "$COLUMN_CURRENT_SPENT INTEGER NOT NULL DEFAULT 0" + + ")" + + const val DROP_TABLE = "DROP TABLE IF EXISTS $TABLE_NAME" + } + + object ExpenseEntry : BaseColumns { + private const val TABLE_NAME = "expenses" + private const val COLUMN_PLACE = "place" + private const val COLUMN_AMOUNT = "amount" + private const val COLUMN_DATE = "date" + + const val CREATE_TABLE = + "CREATE TABLE $TABLE_NAME" + + "(" + + "${BaseColumns._ID} INTEGER PRIMARY KEY AUTOINCREMENT," + + "$COLUMN_PLACE TEXT NOT NULL," + + "$COLUMN_AMOUNT INTEGER NOT NULL," + + "$COLUMN_DATE TEXT NOT NULL" + + ")" + + const val DROP_TABLE = "DROP TABLE IF EXISTS $TABLE_NAME" + } +} diff --git a/app/src/main/java/com/example/jaringobi/db/DBHelper.kt b/app/src/main/java/com/example/jaringobi/db/DBHelper.kt new file mode 100644 index 0000000..eec008e --- /dev/null +++ b/app/src/main/java/com/example/jaringobi/db/DBHelper.kt @@ -0,0 +1,34 @@ +package com.example.jaringobi.db + +import android.content.Context +import android.database.sqlite.SQLiteDatabase +import android.database.sqlite.SQLiteOpenHelper +import com.example.jaringobi.db.Contract.ExpenseEntry +import com.example.jaringobi.db.Contract.GoalEntry + +class DBHelper(context: Context) : SQLiteOpenHelper( + context, + Contract.DATABASE_NAME, + null, + Contract.DATABASE_VERSION, +) { + override fun onCreate(db: SQLiteDatabase?) { + Thread { + db?.execSQL(ExpenseEntry.CREATE_TABLE) + db?.execSQL(GoalEntry.CREATE_TABLE) + }.start() + } + + override fun onUpgrade( + db: SQLiteDatabase?, + oldVersion: Int, + newVersion: Int, + ) { + Thread { + db?.execSQL(ExpenseEntry.DROP_TABLE) + db?.execSQL(GoalEntry.DROP_TABLE) + }.start() + + onCreate(db) + } +}