三、Electron(Windows) sqlite3使用

Electron(Windows) sqlite3使用

1、sqlite安装

a、如果没有安装过编译环境,需要安装编译环境

npm install -g node-gyp
npm install -g node-pre-gyp
npm install --global --production windows-build-tools

b、使用cd命令切换到工程所在目录(eg、工程在D:\project\electron-update)

d:
cd D:\project\electron-update
npm
npm install sqlite3 --save

在这里插入图片描述
c、切找到sqlite3的 node_modules 目录

cd node_modules\sqlite3
node-gyp rebuild --target=7.1.4 --arch=x64 --target_platform=win32  --dist-url=https://atom.io/download/electron/ --module_name=node_sqlite3 --module_path=../lib/binding/electron-v7.1-win32-x64

–target=写当前用的electron 版本号

在这里插入图片描述
到此sqllite 安装完在

3、封装数据库操作类 新建文件 sql_lite_database.js并将文件放到自己工程目录中

eg、我的放到了src\renderer\database目录下

//引入sqlite3 
import sql_db from 'sqlite3'


/**
 * File: sqlite.js.
 * Author: W A P.
 * Email: 610585613@qq.com.
 * Datetime: 2018/07/24.
 */
 
var fs = require('fs');
var sqlite3 = sql_db.verbose();
 
var DB = DB || {};
 
DB.SqliteDB = function(file){
    
    DB.db = new sqlite3.Database(file);
    console.log("open db file!");
    DB.exist = fs.existsSync(file);
    if(!DB.exist){
        console.log("Creating db file!");
        fs.openSync(file, 'w');
    };

   
    
    //return DB;
};
 
DB.printErrorInfo = function(err){
    console.log("Error Message:" + err.message + " ErrorNumber:" + errno);
};
 
DB.SqliteDB.prototype.createTable = function(sql){
    DB.db.serialize(function(){
        DB.db.run(sql, function(err){
            if(null != err){
                DB.printErrorInfo(err);
                return;
            }
        });
    });
};
 
/// tilesData format; [[level, column, row, content], [level, column, row, content]]
DB.SqliteDB.prototype.insertData = function(sql, objects){
    DB.db.serialize(function(){
        var stmt = DB.db.prepare(sql);
        for(var i = 0; i < objects.length; ++i){
            stmt.run(objects[i]);
        }
    
        stmt.finalize();
    });
};
 
DB.SqliteDB.prototype.queryData = function(sql, callback){
    DB.db.all(sql, function(err, rows){
        if(null != err){
            DB.printErrorInfo(err);
            return;
        }
 
        /// deal query data.
        if(callback){
            callback(rows);
        }
    });
};
 
DB.SqliteDB.prototype.executeSql = function(sql){
    DB.db.run(sql, function(err){
        if(null != err){
            DB.printErrorInfo(err);
        }
    });
};
 
DB.SqliteDB.prototype.close = function(){
    DB.db.close();
};

let dbInstance = new DB.SqliteDB("./cui_test.db");//指定生成的数据库名
dbInstance.init();


export default dbInstance;

4、sqlite引入工程

a、打开工程中src\renderer\main.js
在这里插入图片描述
b、测试一下能否使用
在App.vue中的script文件中加入以测试代码

 this.$dboper.createTable("create table if not exists sys_paramconfig(param_name text, param_value INTEGER,param_type INTEGER);");
    let querySql = "select * from sys_paramconfig where param_name = 'system_ini' and param_value='1' ";
    this.$dboper.queryData(querySql, function(objects){
        
        console.log(objects);
       
    });

发现工程目录中生成了一个cui_test.db文件,并且表中存在sys_paramconfig表,可以借助可视化工具查找sqllite数据库
到此sqllite成功引入到electron中

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值