一、安装adb platform tools工具

  1. 下载MUMU模拟器,详见MUMU 模拟器12
  2. 下载adb工具 SDK 平台工具版本说明 | Android Studio | Android Developers,adb工具可以看到虚拟机or真机的文件管理
  • 这里我选择windows版本下载

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

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

确定保存

  1. 打开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)目录通常不允许写操作,只能读取。

回调函数无返回参数。

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对象为查询的结果。 如果未查询到数据则返回参数为空数组。

  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语句中使用“;”分割多条命令,要运行多条命令请使用字符串数组参数。

executeSql(sql) {
  console.log('执行', sql)
  return new Promise((resovle, reject) => {
    plus.sqlite.executeSql({
      name: dbName,
      sql,
      success: resovle,
      fail: reject
    })
  })
}

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐