android - 如何在 Native 代码中访问 SQLite 数据库?
问题描述
我已经使用sqflite插件在颤振中创建了数据库。我在 android native 中为我的应用程序创建了 android 主屏幕小部件。现在我需要从 SQLite 中获取数据。那就是我正在尝试使用 SQLite db 中的 Android Native sqflite 包获取数据。那可能吗?
解决方案
> Flutter 没有限制
Sqlite的基本规则,你需要记住
- sqflite 在 SQLite 数据库之上工作
- 因此,当颤振插件创建数据库时,它可用于本机代码(验证文件夹结构)
- 您可以通过在本机 Android 或 IOS 上为 SQLiteDatabase 提供数据库路径来打开数据库
- 最后你可以通过查询()读取表数据
private fun accessDB(){
try {
GlobalScope.launch {
var db:SQLiteDatabase = SQLiteDatabase.openDatabase(getDatabasePath("epistle.db").absolutePath,null,SQLiteDatabase.OPEN_READWRITE);
Log.d(MainActivity::class.java.name , "Database Path "+db.path.toString())
Log.d("" , "Database version "+db.version.toString())
var cursor = db.query("userInfo",null,null,null,null,null,null)
cursor?.let {
while (cursor.moveToNext()){
var columnNames =cursor.columnNames
columnNames.forEach {
Log.d(
MainActivity::class.java.name,
"$it "+cursor.getString(cursor.getColumnIndex(it))
)
}
}
}
}
}catch (e:Exception){
e.printStackTrace();
}
}
MainActivity: Database Path /data/u
MainActivity: id 1
MainActivity: uid XfXCx613bKWl0EuDU
MainActivity: username Lee And May
MainActivity: email yepi1@yep.com
MainActivity: location US
MainActivity: isBiometricEnabled 0
MainActivity: isNotificationsEnable
MainActivity: morning 152.549
MainActivity: evening 166.529
MainActivity: plan Basic
MainActivity: lattitude 0
MainActivity: lognitude 0
MainActivity: userID XfXCx613bKWl0E
MainActivity: theme 2
MainActivity: premiumStartDate null
MainActivity: premiumEndDate null
MainActivity: isPremium 0
推荐阅读
- c# - 如何从excel UDF返回带有撇号的值
- session - 在 .Net Core Web Api 中读取会话值
- git - Git 和 SVN 通过 git svn 分支合并。哪种程序最好?
- c# - 将所有泛型参数约束到单个接口 c#
- r - 如何将每第 n 行复制到整个数据集
- visual-studio - 将 WinDbg 插件移植到 Visual Studio 2019 扩展
- swift - 如何在守卫中使用 UISegmentedControl 和文本字段
- ios - Xcode11 命令 PhaseScriptExecution 因 SDWebImage 的非零退出代码而失败
- java - 如何将字符串数组调用到方法中
- yaml - 将 OAS 3.0 中的“oneOf”用于“必需”属性的多个标准