Requery&从sql dump创建数据库:如何?

时间:2017-08-13 07:44:24

标签: android sqlite orm kotlin

我正在尝试使用带有Kotlin和SQLite后端的requery https://github.com/requery/requery库。我有一个sql转储,我想在第一次启动应用程序时写入sqlite数据库,然后我想用requery将数据类映射到数据库实体。 这是使用表创建的数据源初始化:

if (!(DataStorage.isDbInitialized(context))) {
        val db = writableDatabase
        val inputStream = context?.resources?.openRawResource(R.raw.dump)
        val reader = BufferedReader(InputStreamReader(inputStream))
        val builder = StringBuilder()
        var line : String?
        var end = false
        while (!end) {
            line = reader.readLine()
            if(line == null) {
                end = true
            } else {
                builder.append(line)
            }
        }
        db.execSQL(builder.toString())
        onCreate(db)
        DataStorage.setDbInitialized(context)
    }

我必须从SqlitexDatabaseSource和CommonDataSource派生此类以与Kotlin一起使用。 SQL查询已成功执行,但是当我尝试从数据库中选择所有对象时,此请求将返回零大小的列表:

val result : Result<Feat> = (application as MainApp).dataStore.select(Feat::class).get()
    result.each {
        Log.d("TAG", it.name)
    }

如文档中所述创建DTO:

https://github.com/Syjgin/PathfinderFeats/blob/master/app/src/main/java/com/syjgin/pathfinderfeats/model/Feat.kt

是否可以使用sql dump初始化requery数据,或者我必须为每一行创建DTO并通过insert方法提交它?

0 个答案:

没有答案