SQLite
是一款轻量级的数据库,SQLite
的第一个版本是2000年就发布了的,经过十多年的历练,显然SQLite
目前已经相当成熟。SQLite
最大的特点就是没有任何数据库服务器,无论是C
、java
、node.js
,只需要相应的驱动,就可以直接对数据库进行读写,速度是相当的快。这里我们通过SQLite3
实现对SQLite
的一些操作。SQLite3
非常小,轻量级,就几百K大小;不需要用户名,密码,直接就可以对数据库进行操作。
注:这里使用是配合Electron
。而且需要前端对数据库sql
语句有一定了解。
一、安装SQLite3
数据库
cnpm install sqlite3 --save
二、建立数据库链接
const sqlite3 = require('sqlite3').verbose(),
DB = new sqlite3.Database('data.db', {});
这里必须指定.db
文件位置,建议和这个js
文件放在一个目录,而后这个链接数据库的js
文件要在Electron
主进程js
文件里面调用。
// 关闭数据库链接
DB.close((err, res) => {
if (err) {
console.log('数据库链接关闭失败::');
console.log(err)
return;
}
console.log('数据库链接关闭成功::');
console.log(res)
})
三、操作数据库
run
方法
用法:run(sql,param,...],[callback])
,多用于新增、修改、删除等不需要返回数据的场景。
功能:运行指定参数的SQL
语句,完成之后调用回调函数,它不返回任何数据,在回调函数里面有一个参数,SQL
语句执行成功,则参数的值为null
,反之为一个错误的对象,它返回的是数据库的操作对象。在这个回调函数里面当中的this
,里面包含有lastId
(插入的ID)和change
(操作影响的行数,如果执行SQL
语句失败,则change
的值永远为0
)。all
方法
用法:all(sql,[param,...],[callback])
,多用于查询等需要返回数据的场景。
功能:运行指定参数的SQL
语句,完成过后调用回调函数。如果执行成功,则回调函数中的第一个参数为null
,第二个参数为查询的结果集,反之,则只有一个参数,且参数的值为一个错误的对象。基础操作示例
3.1. 创建数据表
const CREATE_TABLE_SQL = `CREATE TABLE IF NOT EXISTS user
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(64),
age INTEGER
);`;
DB.run(CREATE_TABLE_SQL, (err, res) => {
if (err) {
console.log('创建表失败::');
console.log(err)
return;
}
console.log('创建表成功::');
console.log(res)
});

3.2. 新增数据
const _user_info = {
name: 'cuiht-' + Math.ceil(Math.random() * 100),
age: Math.ceil(Math.random() * 100)
}, TEST_INSERT_SQL = `INSERT INTO user (name, age) VALUES('${_user_info.name}','${_user_info.age}')`;
DB.all(TEST_INSERT_SQL, (err, res) => {
if (err) {
console.log('新增数据失败::');
console.log(err)
return;
}
console.log('新增数据成功::');
console.log(res)
});
