Kotlin开发 如何获取SQLite数据库上自己创建规律的可扩展二级列表数据

Posted 彬sir哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin开发 如何获取SQLite数据库上自己创建规律的可扩展二级列表数据相关的知识,希望对你有一定的参考价值。

1.先在SQLite数据库上自己创建规律的可扩展二级列表数据,如下图:

2. 做的项目如下图:

3.在AndroidManifest.xml中修改默认的Application为我们的MyApplication类

    <application
        android:name="com.demo.test3.MyApplication"//添加这一句

3.1 MyApplication.kt

......
    override fun onCreate() {
        super.onCreate()
        instance = this
        context = applicationContext
        dbName = "test.db"//sqlite的db文件表名:test.db
        AppUtils.copyDbFileFromAsset(context, dbName)
    }
......

3.1.1 AppUtils.kt

        /**
         * 复制离线库文件到 databases 目录
         */
        fun copyDbFileFromAsset(context: Context, dbName: String) {
            var `is`: InputStream
            var os: OutputStream
            val dbDir = File(context.filesDir.parent + "/databases")
            if (!dbDir.exists()) {
                dbDir.mkdir()
            }
            var outDbFile: File
            outDbFile = File(dbDir, dbName)
            try {
                os = FileOutputStream(outDbFile)
                val buffer = ByteArray(1024)
                var length: Int
                `is` = context.assets.open(dbName)
                while (`is`.read(buffer).also {
                        length = it
                    } > 0) {
                    os.write(buffer, 0, length)
                }
                os.flush()
                `is`.close()
                os.close()
            } catch (e: java.lang.Exception) {
                e.printStackTrace()
            }
        }

4.MainActivity.kt,list获取组数和子选项

        val query = DaoFactory.daoFactory.getSitCodeDao().queryBuilder().orderAsc(SitCodeDao.Properties.Code).build()
        val list: List<SitCode> = query.list()

5.SitCodeDao.java

    public static final String TABLENAME = "MyTest";//db文件的表名
    public static class Properties {
        public final static Property Id = new Property(0, String.class, "id", false, "id");
        public final static Property Code = new Property(1, String.class, "code", false, "code");
        public final static Property Name = new Property(2, String.class, "name", false, "name");
    }

6.源代码zip下载:
    下载源代码

以上是关于Kotlin开发 如何获取SQLite数据库上自己创建规律的可扩展二级列表数据的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin基础从入门到进阶系列讲解(入门篇)下载SQLite软件,如何创建/添加/更新/查询/删除数据

Kotlin基础从入门到进阶系列讲解(入门篇)下载SQLite软件,如何创建/添加/更新/查询/删除数据

如何读取将作为 MultipartFile 参数传递的 SQLite 文件? (在 java/kotlin 中)

Kotlin基础从入门到进阶系列讲解(入门篇)SQLite数据库存储

Kotlin基础从入门到进阶系列讲解(入门篇)SQLite数据库存储

“kotlin”sqlite 查询一条记录