这位网友的教程   使用的是现成已用的数据库 !!!!!!此教程目前有点问题,现在wxbit ai2中不支持直接操作外部数据库

先看Android中sqlite中的说明 。数据库在软件的私有目录里,不root是看不到的,为什么不应该直接操作外部数据库,这是安卓为了隐私数据安全设置的。

appinventor连接mysql appinventor读取数据库_appinventor连接mysql

 

 

为什么要设置数据库名,如果不设置数据库名则只在内存中运行,程序关了啥都不保存。并且一个软件可以有多个数据库.默认的数据库名是sqlite.db

appinventor连接mysql appinventor读取数据库_数据库_02

 

 

 如果要使用外部数据可,需要在确保没有数据库的前提下导入外部数据库,注意这里会完全外部覆盖程序的私有数据库

appinventor连接mysql appinventor读取数据库_数据库_03

 

 这一句是在某些低版本的安卓手机(测试6.0)上避免没有本身没有数据库导致无法导入,记得先打开数据库。并且在第二次运行程序的时候才会正确导入。在我的红米note5(11)上则没有这问题

appinventor连接mysql appinventor读取数据库_sql语句_04

 

如果要在别的屏幕使用数据库,则需要在初始化时候设置数据库名

 

appinventor连接mysql appinventor读取数据库_建表_05

 

 

我们使用非常火的Navicat来图形化成sql语句, ,使用内置的运行sql函数来生成表

appinventor连接mysql appinventor读取数据库_sql语句_06

 

 先新建一个sqlite文件,然后新建一个表

appinventor连接mysql appinventor读取数据库_数据库_07

 

在sql预览里可以看到 新建表的sql语句 粘贴出来,然后修改下表名

 

CREATE TABLE "main"."学生" (
"学号" integer NOT NULL,
"姓名" TEXT NOT NULL,
"年级" integer NOT NULL,
PRIMARY KEY ("学号")
);

这个语句就可以用来新建表-学生。同理获得创建表-老师的sql语句

 

CREATE TABLE "main"."老师" (
"姓名" TEXT,
"科目" TEXT,
"性别" TEXT
);

第一步先打开数据库,数据库名就是数据库的路径,如果路径不存在的话会自动新建文件

appinventor连接mysql appinventor读取数据库_sql语句_08

 

新建表的sql语句

 

appinventor连接mysql appinventor读取数据库_数据库_09

 

 现在是空表,在表里添加数据

appinventor连接mysql appinventor读取数据库_sql语句_10

 

 点对勾,就会显示sql语句

appinventor连接mysql appinventor读取数据库_建表_11

 

 当然,我们也可以用ai2的现成语句,等同于上边语句,不过这个一次只能插入一条,要运行多个语句,得用运行sql文件路径那个函数

appinventor连接mysql appinventor读取数据库_数据库_12

 

 

navcat可以用工具自动添加查询语句,点击查询创建工具

appinventor连接mysql appinventor读取数据库_appinventor连接mysql_13

 

生成sql语句  ,distinct表示结果不重复

 

SELECT DISTINCT
"老师"."姓名",
"老师"."科目",
"老师"."性别",
"学生"."姓名",
"学生"."学号"
FROM
"老师",
"学生"
GROUP BY
"学生"."学号"

然后运行

appinventor连接mysql appinventor读取数据库_数据库_14

 

 注意这里的回调,sql的查询结果会传递给回调函数的运行结果,是一个单层列表或者双层列表

 把数据库导出到文件里

appinventor连接mysql appinventor读取数据库_数据库_15