electron与sqlite,增删改查之select
发布于 作者:苏南大叔 来源:程序如此灵动~

增删改查crud之r,实际上英文单词是Retrieve
[r??tri:v]。单词似乎不认识,所以苏南大叔认为:还是理解为read/select
更好些嘛。哈哈。当然,本文的主角还是electron+sqlite
。不会配置环境的,请参考文末链接。

在本文中,苏南大叔要描述的经验文章是:在electron
中如何查询数据。
前置代码
run()查询数据
这个的运行结果挺有意思的,第一条语句插入了一条记录,第二个语句中查询了一个不存在的字段,不但没报错,而且还给出了this.lastID
,就是说,查询语句而不是插入语句中返回了this.lastID
。第三条语句修复了第二条语句的问题,但是仍然返回了this.lastID
。第四条语句中,确没有返回this.lastID
,而是返回了last_insert_rowid()
的值,当然值和上一条语句中this.lastID
是相等的。并且出现了个res
的返回值用于存放查询的数据。

get()
get()函数,只返回符合条件的第一条数据。例子如下:
这个返回值也比较奇怪,返回的是数据表里面的第一条数据,并且如果想知道隐藏的rowid
的话,需要额外指出,并不包含在*
之中。

all()
all()返回所有记录的对象组成的数组到res
中。

each()
each()
返回的数据也是所有数据,但是这些数据是单条返回的,就是说有N条数据的话,就返回了N次,callback
调用N次。这个函数够特别吧?头一次看到还有这么干的函数。每次的返回值都是object对象,存放在res之中。

一个传参并且async的例子
当然,传递参数的方式太多,请参照insert中的run()参数方式:

相关链接
- 《开发electron程序的npm准备工作》 https://newsn.net/say/electron-npm.html
- 《调试运行electron项目的几种姿势》 https://newsn.net/say/electron-run.html
- 《electron搭配sqlite数据库之环境安装》 https://newsn.net/say/electron-install-sqlite3.html
- 《sqlite的官方api说明》 https://github.com/mapbox/node-sqlite3/wiki/API
总结
get()
/all()
/each()
/run()
都可以拿到数据,但是各有区别。参数的传递方式都是一致的,请参照run()
函数的相关说明。(官方文档里面也是这么讲的)。
更多精彩sqlite
经验文章,苏南大叔提示您:请点击这里:


