uniapp整合SQLite(Android)
一、安装adb platform tools工具
- 下载MUMU模拟器,详见MUMU 模拟器12
- 下载adb工具 SDK 平台工具版本说明 | Android Studio | Android Developers,adb工具可以看到虚拟机or真机的文件管理
- 这里我选择windows版本下载

- 下载完成后解压压缩包,这里需要注意文件所在目录,后面要用到

- 找到 adb.exe 文件,复制当前路径配置到环境变量,我这里是 D:\adbTools\platform-tools-latest-windows\platform-tools


确定保存
- 打开cmd
- 查看adb是否安装成功
adb --version

- 查看当前模拟器设备
adb devices

- 进入模拟器
adb -s 127.0.0.1:16416 shell
or 如果只有一台模拟器,可以直接使用一下命令
adb shell

adb shell命令解释:
adb shell 命令用于在链接的Android或模拟器上开启一个交互式的命令行界面,通过这个命令可以直接与设备的操作系统进行交互,执行各种操作。例如访问和修改文件系统、调试应用程序、查看应用的日志、管理设备配置等
- 进入文件管理目录
cd storage/emulated/0

- 在文件管理目录中新建一个文件夹
touch 1.txt

二、新建uniapp项目,链接数据库

- 新建 utils 文件夹 -> db.js 文件
- 在db.js 文件中操作数据库

- 在 App.vue 页面中引入数据库文件 db.js,并在 onLaunch 钩子中创建数据库

运行项目到安卓基座,可以在控制台看到输出 false,这时数据库还未打开
- 在命令窗口中cd到数据库所在目录下
cd /storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/HBuilder/doc
- 查看数据库目录下的文件 ls -l

可以看到total为0,这台模拟机上没有创建数据库
三、创建数据库并建表
1. 创建数据库
plus.sqlite.openDatabase(options);
options参数为json类型,包含以下属性:
- name: ( String ) 必选 数据库名称
- path: ( String ) 必选 数据库路径
必须为本地地址,支持以下类型路径: 5+ API路径(RelativeURL) - 以"_"开头的相对路径,如"_doc/a.db"(推荐使用"_doc/x.db"目录保存); 相对路径 - 相对于当前页面的host位置,如"a.db"(不推荐使用,相对路径无法写入数据,只能读取数据); 绝对路径 - 系统绝对路径,如Android平台"/sdcard/a.db",此类路径通常通过其它5+ API获取的(不推荐使用,无法跨平台); 本地路径URL - 以“file://”开头,后面跟随系统绝对路径。 注意:写入数据需符合系统沙盒权限机制,应用资源目录(_www)目录通常不允许写操作,只能读取。
- success: ( SQLiteSuccessCallback ) 可选 打开数据库成功回调函数
回调函数无返回参数。
- fail: ( SQLiteFailCallback ) 可选 打开数据库失败回调函数
createDatabase() {
// 创建数据库的方法:openDatabase,有表则打开,无表则创建。
// 该方法为一个异步方法,会在操作完成后通过回调函数返回结果,使用Promise包裹可以更清晰的处理成功和失败的情况
return new Promise((resolve, reject) => {
plus.sqlite.openDatabase({
name: dbName,
path:dbPath,
success: (result) => {
resolve(result)
},
fail(error) {
reject(error)
}
})
})
}
- 在命令行中查看数据库
- 查看目录下是否有数据库,有则创建成功

-
- 进入数据库

-
- 查看数据库下的表

当前数据库下只有一张自带的表
- 查看表结构

只有一个locale字段
- 查看表数据
![]()
只有一个字段 zh_CN
2. 查询数据库
plus.sqlite.selectSql(options)
options参数为json类型,包含以下属性:
- name: ( String ) 必选 数据库名称
- sql: ( String ) 必选 需要查询的SQL语句
- success: ( SQLiteSuccessCallback ) 可选 执行SQL语句成功回调函数
回调函数返回参数为JSON对象数组,其中JSON对象为查询的结果。 如果未查询到数据则返回参数为空数组。
- fail: ( SQLiteFailCallback ) 可选 执行SQL语句失败回调函数
selectDatabase(sql) {
return new Promise((resovle, reject) => {
plus.sqlite.selectSql({
name: dbName,
sql,
success: resovle,
fail: reject
})
})
}
3. 执行增删改查操作
plus.sqlite.executeSql(options);
options参数为json类型,包含以下属性:
- name: ( String ) 必选 数据库名称
- sql: ( Array[String] | String ) 必选 需要执行的SQL语句
参数为字符串时,表示执行单条SQL语句; 参数为字符串数组时(HBuilderX2.5.5+支持),表示执行多条SQL语句,按数组顺序执行,某条SQL语句执行错误则终止。 注意:Android平台不支持SQL语句中使用“;”分割多条命令,要运行多条命令请使用字符串数组参数。
- success: ( SQLiteSuccessCallback ) 可选 执行SQL语句成功回调函数,回调函数无返回参数。
- fail: ( SQLiteFailCallback ) 可选 执行SQL语句失败回调函数
executeSql(sql) {
console.log('执行', sql)
return new Promise((resovle, reject) => {
plus.sqlite.executeSql({
name: dbName,
sql,
success: resovle,
fail: reject
})
})
}
更多推荐
所有评论(0)