mirror of
https://github.com/Shabinder/SpotiFlyer.git
synced 2024-11-22 01:04:31 +01:00
SQLDelight Database
This commit is contained in:
parent
be23c0e4c5
commit
6b024ec430
@ -0,0 +1,10 @@
|
||||
package com.shabinder.common
|
||||
|
||||
data class DownloadRecord(
|
||||
var id:Int = 0,
|
||||
var type:String,
|
||||
var name:String,
|
||||
var link:String,
|
||||
var coverUrl:String,
|
||||
var totalFiles:Int = 1,
|
||||
)
|
@ -5,7 +5,7 @@ plugins {
|
||||
}
|
||||
|
||||
sqldelight {
|
||||
database("TodoDatabase") {
|
||||
database("DownloadRecordDatabase") {
|
||||
packageName = "com.shabinder.database"
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,12 @@
|
||||
package com.shabinder.common.database
|
||||
|
||||
import android.content.Context
|
||||
import com.shabinder.database.DownloadRecordDatabase
|
||||
import com.squareup.sqldelight.android.AndroidSqliteDriver
|
||||
import com.squareup.sqldelight.db.SqlDriver
|
||||
|
||||
actual class DatabaseDriverFactory(private val context: Context) {
|
||||
actual fun createDriver(): SqlDriver {
|
||||
return AndroidSqliteDriver(DownloadRecordDatabase.Schema, context, "DownloadRecordDatabase.db")
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.shabinder.common.database
|
||||
|
||||
import com.squareup.sqldelight.db.SqlDriver
|
||||
|
||||
expect class DatabaseDriverFactory {
|
||||
fun createDriver(): SqlDriver
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
CREATE TABLE IF NOT EXISTS DownloadRecord (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||
type TEXT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
link TEXT NOT NULL UNIQUE ON CONFLICT REPLACE ,
|
||||
coverUrl TEXT NOT NULL,
|
||||
totalFiles INTEGER NOT NULL DEFAULT 1
|
||||
);
|
||||
|
||||
selectAll:
|
||||
SELECT *
|
||||
FROM DownloadRecord;
|
||||
|
||||
select:
|
||||
SELECT *
|
||||
FROM DownloadRecord
|
||||
WHERE link = :link;
|
||||
|
||||
add:
|
||||
INSERT OR REPLACE INTO DownloadRecord (type, name, link, coverUrl, totalFiles)
|
||||
VALUES (?,?,?,?,?);
|
||||
|
||||
delete:
|
||||
DELETE FROM DownloadRecord
|
||||
WHERE link = :link;
|
||||
|
||||
getLastInsertId:
|
||||
SELECT last_insert_rowid();
|
||||
|
||||
clear:
|
||||
DELETE FROM DownloadRecord;
|
@ -1,39 +0,0 @@
|
||||
CREATE TABLE IF NOT EXISTS TodoItemEntity (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
orderNum INTEGER NOT NULL,
|
||||
text TEXT NOT NULL,
|
||||
isDone INTEGER AS Boolean NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
selectAll:
|
||||
SELECT *
|
||||
FROM TodoItemEntity;
|
||||
|
||||
select:
|
||||
SELECT *
|
||||
FROM TodoItemEntity
|
||||
WHERE id = :id;
|
||||
|
||||
add:
|
||||
INSERT INTO TodoItemEntity (orderNum, text)
|
||||
VALUES ((CASE (SELECT COUNT(*) FROM TodoItemEntity) WHEN 0 THEN 1 ELSE (SELECT MAX(orderNum)+1 FROM TodoItemEntity) END), :text);
|
||||
|
||||
setText:
|
||||
UPDATE TodoItemEntity
|
||||
SET text = :text
|
||||
WHERE id = :id;
|
||||
|
||||
setDone:
|
||||
UPDATE TodoItemEntity
|
||||
SET isDone = :isDone
|
||||
WHERE id = :id;
|
||||
|
||||
delete:
|
||||
DELETE FROM TodoItemEntity
|
||||
WHERE id = :id;
|
||||
|
||||
getLastInsertId:
|
||||
SELECT last_insert_rowid();
|
||||
|
||||
clear:
|
||||
DELETE FROM TodoItemEntity;
|
@ -0,0 +1,16 @@
|
||||
package com.shabinder.common.database
|
||||
|
||||
import com.shabinder.database.DownloadRecordDatabase
|
||||
import com.squareup.sqldelight.db.SqlDriver
|
||||
import com.squareup.sqldelight.sqlite.driver.JdbcSqliteDriver
|
||||
import java.io.File
|
||||
|
||||
actual class DatabaseDriverFactory {
|
||||
actual fun createDriver(): SqlDriver {
|
||||
val databasePath = File(System.getProperty("java.io.tmpdir"), "DownloadRecordDatabase.db")
|
||||
val driver = JdbcSqliteDriver(url = "jdbc:sqlite:${databasePath.absolutePath}")
|
||||
DownloadRecordDatabase.Schema.create(driver)
|
||||
|
||||
return driver
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user