最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • electron-vue 开发(6) electron使用better-sqlite3插件-2

    正文概述 掘金(Codist65638)   2021-01-03   1492

    前言

    上一篇说到了如何在electron5.x环境下编译出better-sqlite3插件,那么这一篇就分享一下如何去使用better-sqlite3插件。

    better-sqlite3 官方的文档真的是不忍直视,我结合我所使用到的简单的功能做一下总结吧。

    创建数据库

    this.db = new Database("foobar.db");
    try {
      this.db.exec(
        `CREATE TABLE  Photo (
            id    integer primary	 key AUTOINCREMENT,
            photo_path  text,
            is_detect bool,
            detect_status  int,
            desc text,
            time timestamp)`
      );
    } catch (error) {
      console.log(error);
      if (error.message == "table Photo already exists") {
        console.log("Photo表已经存在");
      }
    }
    

    写入数据

    const insert = this.db.prepare(
            "INSERT INTO Photo (photo_path, is_detect, detect_status, time) " +
              "VALUES (@photo_path, @is_detect, @detect_status, @time)"
          );
    const insertMany = this.db.transaction((cats) => {
            for (const cat of cats) {
              insert.run(cat);
            }
          });
          insertMany(arr_photo_path);
    

    当然这个插入语句也可以一条一条执行,但是如果按照上述这种写法,应该是走的sqlite事务的功能,写入数据速度会快上很多(它的这个设计语法真的很奇怪...)

    查询数据

    const stmt = this.db.prepare(
            "select * from Photo where is_detect=0 limit 0,1;"
          );
    let obj_photo = stmt.get();
    

    这里obj_photo得到的就是查询的结果,已经转换成了对象。

    修改数据

    const update = this.db.prepare(
            "update Photo set is_detect=? where id=?;"
          );
    update.run(1, 1);
    

    删除数据

     this.db.exec(
                    "delete from Photo;update sqlite_sequence SET seq = 0 where name ='Photo';"
                  );
    

    总结

    好的,至此就已经做完了基本的数据库的增删改查的功能。此外我发现better-sqlite3的函数都是同步执行的,这样也方便了一些逻辑的编写,也是挺方便的。如果想要异步的话,放在回调函数里面执行应该也是可以的。


    起源地下载网 » electron-vue 开发(6) electron使用better-sqlite3插件-2

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元