electron-egg electron-egg
首页
  • v4.x
  • v3.x
  • v2.x
插件
  • v4.x
  • v3.x
demo
支持
知识点
案例
交流
  • GitHub (opens new window)
  • Gitee (opens new window)
首页
  • v4.x
  • v3.x
  • v2.x
插件
  • v4.x
  • v3.x
demo
支持
知识点
案例
交流
  • GitHub (opens new window)
  • Gitee (opens new window)
❤️成为赞助商
  • 框架

    • 通信
    • http服务
    • socket服务
    • json数据库
    • sqlite数据库
      • 任务
      • 自动更新
      • 软件调用
      • Java服务
    • 操作系统

    • 特效

    • 硬件

    • 优惠券
    • 异常处理
    目录

    sqlite数据库

    sqlite数据库的常用操作

    # 增删改查数据数据

      // frontend/src/views/framework/sqlitedb/Index.vue
      <script>
        // ac: 'add' | 'del' | 'update' | 'get'
        sqlitedbOperation (ac) {
          const params = {
            action: ac,
            info: {
              name: this.name,
              age: parseInt(this.age)
            },
            search_age: parseInt(this.search_age),
            update_name: this.update_name,
            update_age: parseInt(this.update_age),
            delete_name: this.delete_name,
          }
          if (ac == 'add' && this.name.length == 0) {
            this.$message.error(`请填写数据`);
          }
          this.$ipc.invoke(ipcApiRoute.sqlitedbOperation, params).then(res => {
            console.log('res:', res);
            if (ac == 'get') {
              if (res.result.length == 0) {
                this.$message.error(`没有数据`);
                return;
              }
              this.userList = res.result;
            }
            if (res.all_list.length == 0) {
              this.all_list = ['空'];
              return;
            }
            this.all_list = res.all_list;
            this.$message.success(`success`);
          }) 
        },
      </script> 
      
      // electron/controller/framework.js
      /**
       * sqlite数据库操作
       */   
      async sqlitedbOperation(args) {
        const { service } = this;
        const paramsObj = args;
        const data = {
          action: paramsObj.action,
          result: null,
          all_list: []
        };
        switch (paramsObj.action) {
          case 'add' :
            data.result = await service.storage.addTestDataSqlite(paramsObj.info);;
            break;
          case 'del' :
            data.result = await service.storage.delTestDataSqlite(paramsObj.delete_name);;
            break;
          case 'update' :
            data.result = await service.storage.updateTestDataSqlite(paramsObj.update_name, paramsObj.update_age);
            break;
          case 'get' :
            data.result = await service.storage.getTestDataSqlite(paramsObj.search_age);
            break;
          case 'getDataDir' :
            data.result = await service.storage.getDataDir();
            break;
          case 'setDataDir' :
            data.result = await service.storage.setCustomDataDir(paramsObj.data_dir);
            break;            
        }
        data.all_list = await service.storage.getAllTestDataSqlite();
        return data;
      }  
      
      // Make sure to add code blocks to your code group

      # 修改数据文件(xx.db)的存储目录

        // frontend/src/views/framework/sqlitedb/Index.vue
        <script>
          selectDir() {
            this.$ipc.invoke(ipcApiRoute.selectFolder, '').then(r => {
              this.data_dir = r;
              // 修改数据目录
              this.modifyDataDir(r);
            })
          },
          modifyDataDir(dir) {
            const params = {
              action: 'setDataDir',
              data_dir: dir
            }
            this.$ipc.invoke(ipcApiRoute.sqlitedbOperation, params).then(res => {
              this.all_list = res.all_list;
            }) 
          },
        </script> 
        
        // electron/controller/os.js
        /**
         * 选择目录
         */
        selectFolder() {
          const filePaths = dialog.showOpenDialogSync({
            properties: ['openDirectory', 'createDirectory']
          });
          if (_.isEmpty(filePaths)) {
            return null
          }
          return filePaths[0];
        } 
        
        // Make sure to add code blocks to your code group

        # 打开数据文件(xx.db)所在目录

          // frontend/src/views/framework/sqlitedb/Index.vue
          <script>
            openDir() {
              this.$ipc.invoke(ipcApiRoute.openDirectory, {id: this.data_dir}).then(res => {
                //
              })
            }, 
          </script> 
          
          // electron/controller/os.js
          const { app: electronApp, shell } = require('electron');
          /**
           * 打开目录
           */
          openDirectory(args) {
            if (!args.id) {
              return false;
            }
            let dir = '';
            if (path.isAbsolute(args.id)) {
              dir = args.id;
            } else {
              dir = electronApp.getPath(args.id);
            }
            shell.openPath(dir);
            return true;
          }
          
          // Make sure to add code blocks to your code group

          # 完整代码

          • github前端代码 (opens new window)
          • github主进程代码 (opens new window)
          • gitee前端代码 (opens new window)
          • gitee主进程代码 (opens new window)
          上次更新: 2025/06/06, 07:21:49
          json数据库
          任务

          ← json数据库 任务→

          Theme by Vdoing | Copyright © 2023-2025 哆啦好梦 | 京ICP备15041380号-2
          • 跟随系统
          • 浅色模式
          • 深色模式
          • 阅读模式
          ×