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中