Skip to content

Commit

Permalink
feat | DB 설정
Browse files Browse the repository at this point in the history
  • Loading branch information
k-kbk committed May 20, 2024
1 parent c875d35 commit 9263f32
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 0 deletions.
4 changes: 4 additions & 0 deletions app/src/main/java/com/example/jaringobi/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}
46 changes: 46 additions & 0 deletions app/src/main/java/com/example/jaringobi/db/Contract.kt
Original file line number Diff line number Diff line change
@@ -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"
}
}
34 changes: 34 additions & 0 deletions app/src/main/java/com/example/jaringobi/db/DBHelper.kt
Original file line number Diff line number Diff line change
@@ -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)
}
}

0 comments on commit 9263f32

Please sign in to comment.