From 2d6c569292fb6a2ccc9a98ae0bcf0224493fb58f Mon Sep 17 00:00:00 2001
From: gaoshuaixing <530353222@qq.com>
Date: Sat, 28 Dec 2024 13:04:09 +0800
Subject: [PATCH] feat: rewrite sqlite demo
---
electron/controller/framework.js | 20 +-
electron/service/database/basedb.js | 27 ++-
electron/service/database/sqlitedb.js | 66 +-----
frontend/src/router/routerMap.js | 5 -
.../src/views/framework/sqlitedb/Index.vue | 211 +++++++++---------
5 files changed, 147 insertions(+), 182 deletions(-)
diff --git a/electron/controller/framework.js b/electron/controller/framework.js
index e39e864..cda0ab8 100644
--- a/electron/controller/framework.js
+++ b/electron/controller/framework.js
@@ -9,7 +9,7 @@ const { getExtraResourcesDir } = require('ee-core/ps');
const { logger } = require('ee-core/log');
const { getConfig } = require('ee-core/config');
const { frameworkService } = require('../service/framework');
-const { frameworkService } = require('../service/database/sqlitedb');
+const { sqlitedbService } = require('../service/database/sqlitedb');
/**
* framework - demo
@@ -38,7 +38,7 @@ class FrameworkController {
try {
// test
- Services.get('database.sqlitedb').getDataDir();
+ sqlitedbService.getDataDir();
} catch (err) {
console.log(err);
data.code = -1;
@@ -47,26 +47,26 @@ class FrameworkController {
switch (action) {
case 'add' :
- data.result = await Services.get('database.sqlitedb').addTestDataSqlite(info);;
+ data.result = await sqlitedbService.addTestDataSqlite(info);;
break;
case 'del' :
- data.result = await Services.get('database.sqlitedb').delTestDataSqlite(delete_name);;
+ data.result = await sqlitedbService.delTestDataSqlite(delete_name);;
break;
case 'update' :
- data.result = await Services.get('database.sqlitedb').updateTestDataSqlite(update_name, update_age);
+ data.result = await sqlitedbService.updateTestDataSqlite(update_name, update_age);
break;
case 'get' :
- data.result = await Services.get('database.sqlitedb').getTestDataSqlite(search_age);
+ data.result = await sqlitedbService.getTestDataSqlite(search_age);
break;
case 'getDataDir' :
- data.result = await Services.get('database.sqlitedb').getDataDir();
+ data.result = await sqlitedbService.getDataDir();
break;
case 'setDataDir' :
- data.result = await Services.get('database.sqlitedb').setCustomDataDir(data_dir);
+ data.result = await sqlitedbService.setCustomDataDir(data_dir);
break;
}
- data.all_list = await Services.get('database.sqlitedb').getAllTestDataSqlite();
+ data.all_list = await sqlitedbService.getAllTestDataSqlite();
return data;
}
@@ -168,7 +168,7 @@ class FrameworkController {
/**
* 异步消息类型
*/
- async ipcInvokeMsg(args, event) {
+ async ipcInvokeMsg(args) {
let timeNow = dayjs().format('YYYY-MM-DD HH:mm:ss');
const data = args + ' - ' + timeNow;
diff --git a/electron/service/database/basedb.js b/electron/service/database/basedb.js
index c0a3a48..b0b2126 100644
--- a/electron/service/database/basedb.js
+++ b/electron/service/database/basedb.js
@@ -11,8 +11,6 @@ const path = require('path');
class BasedbService {
constructor(options) {
- super();
-
const { dbname } = options;
this.dbname = dbname;
this.db = undefined;
@@ -26,14 +24,25 @@ class BasedbService {
// 定义数据文件
const dbFile = path.join(getStorageDir(), "db", this.dbname);
const sqliteOptions = {
- driver: 'sqlite',
- default: {
- timeout: 6000,
- verbose: null // 打印sql语法 console.log
- }
+ timeout: 6000,
+ verbose: console.log
}
- const storage = new SqliteStorage(dbFile, sqliteOptions);
- this.db = storage.db;
+ this.storage = new SqliteStorage(dbFile, sqliteOptions);
+ this.db = this.storage.db;
+ }
+
+ /*
+ * change data dir (sqlite)
+ */
+ changeDataDir(dir) {
+ // the absolute path of the db file
+ const dbFile = path.join(dir, this.dbname);
+ const sqliteOptions = {
+ timeout: 6000,
+ verbose: console.log
+ }
+ this.storage = new SqliteStorage(dbFile, sqliteOptions);
+ this.db = this.storage.db;
}
}
diff --git a/electron/service/database/sqlitedb.js b/electron/service/database/sqlitedb.js
index 63a6528..3707e06 100644
--- a/electron/service/database/sqlitedb.js
+++ b/electron/service/database/sqlitedb.js
@@ -1,9 +1,7 @@
'use strict';
const { BasedbService } = require('./basedb');
-const Storage = require('ee-core/storage');
const _ = require('lodash');
-const path = require('path');
/**
* sqlite数据存储
@@ -13,9 +11,10 @@ class SqlitedbService extends BasedbService {
constructor () {
const options = {
- dbname:'sqlite-demo.db',
+ dbname: 'sqlite-demo.db',
}
super(options);
+ this.userTableName = 'user';
this._initTable();
}
@@ -24,13 +23,12 @@ class SqlitedbService extends BasedbService {
*/
_initTable() {
// 检查表是否存在
- const userTableName = 'user';
const masterStmt = this.db.prepare('SELECT * FROM sqlite_master WHERE type=? AND name = ?');
- let tableExists = masterStmt.get('table', userTableName);
+ let tableExists = masterStmt.get('table', this.userTableName);
if (!tableExists) {
// 创建表
const create_user_table_sql =
- `CREATE TABLE ${userTableName}
+ `CREATE TABLE ${this.userTableName}
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name CHAR(50) NOT NULL,
@@ -44,14 +42,8 @@ class SqlitedbService extends BasedbService {
* 增 Test data (sqlite)
*/
async addTestDataSqlite(data) {
- //console.log("add data:", data);
-
- let table = 'user';
- await this.checkAndCreateTableSqlite(table);
-
- const insert = this.demoSqliteDB.db.prepare(`INSERT INTO ${table} (name, age) VALUES (@name, @age)`);
+ const insert = this.db.prepare(`INSERT INTO ${this.userTableName} (name, age) VALUES (@name, @age)`);
insert.run(data);
-
return true;
}
@@ -59,14 +51,8 @@ class SqlitedbService extends BasedbService {
* 删 Test data (sqlite)
*/
async delTestDataSqlite(name = '') {
- //console.log("delete name:", name);
-
- let table = 'user';
- await this.checkAndCreateTableSqlite(table);
-
- const delUser = this.demoSqliteDB.db.prepare(`DELETE FROM ${table} WHERE name = ?`);
+ const delUser = this.db.prepare(`DELETE FROM ${this.userTableName} WHERE name = ?`);
delUser.run(name);
-
return true;
}
@@ -74,14 +60,8 @@ class SqlitedbService extends BasedbService {
* 改 Test data (sqlite)
*/
async updateTestDataSqlite(name= '', age = 0) {
- //console.log("update :", {name, age});
-
- let table = 'user';
- await this.checkAndCreateTableSqlite(table);
-
- const updateUser = this.demoSqliteDB.db.prepare(`UPDATE ${table} SET age = ? WHERE name = ?`);
+ const updateUser = this.db.prepare(`UPDATE ${this.userTableName} SET age = ? WHERE name = ?`);
updateUser.run(age, name);
-
return true;
}
@@ -89,14 +69,8 @@ class SqlitedbService extends BasedbService {
* 查 Test data (sqlite)
*/
async getTestDataSqlite(age = 0) {
- //console.log("select :", {age});
-
- let table = 'user';
- await this.checkAndCreateTableSqlite(table);
-
- const selectUser = this.demoSqliteDB.db.prepare(`SELECT * FROM ${table} WHERE age = @age`);
+ const selectUser = this.db.prepare(`SELECT * FROM ${this.userTableName} WHERE age = @age`);
const users = selectUser.all({age: age});
- //console.log("select users:", users);
return users;
}
@@ -104,14 +78,8 @@ class SqlitedbService extends BasedbService {
* all Test data (sqlite)
*/
async getAllTestDataSqlite() {
- //console.log("select all user");
-
- let table = 'user';
- await this.checkAndCreateTableSqlite(table);
-
- const selectAllUser = this.demoSqliteDB.db.prepare(`SELECT * FROM ${table} `);
+ const selectAllUser = this.db.prepare(`SELECT * FROM ${this.userTableName} `);
const allUser = selectAllUser.all();
- //console.log("select allUser:", allUser);
return allUser;
}
@@ -119,8 +87,7 @@ class SqlitedbService extends BasedbService {
* get data dir (sqlite)
*/
async getDataDir() {
- const dir = this.demoSqliteDB.getStorageDir();
-
+ const dir = this.storage.getStorageDir();
return dir;
}
@@ -132,17 +99,8 @@ class SqlitedbService extends BasedbService {
return;
}
- // the absolute path of the db file
- const dbFile = path.join(dir, this.sqliteFile);
- const sqliteOptions = {
- driver: 'sqlite',
- default: {
- timeout: 6000,
- verbose: console.log
- }
- }
- this.demoSqliteDB = Storage.connection(dbFile, sqliteOptions);
-
+ this.changeDataDir(dir);
+ this._initTable();
return;
}
}
diff --git a/frontend/src/router/routerMap.js b/frontend/src/router/routerMap.js
index 9c1ab2b..8aebe1e 100644
--- a/frontend/src/router/routerMap.js
+++ b/frontend/src/router/routerMap.js
@@ -51,11 +51,6 @@ const constantRouterMap = [
name: 'FrameworkSoftwareIndex',
component: () => import('@/views/framework/software/Index.vue')
},
- {
- path: '/framework/java/index',
- name: 'FrameworkJavaIndex',
- component: () => import('@/views/framework/java/Index.vue')
- },
{
path: '/framework/testapi/index',
name: 'FrameworkTestApiIndex',
diff --git a/frontend/src/views/framework/sqlitedb/Index.vue b/frontend/src/views/framework/sqlitedb/Index.vue
index 83d8771..6f033a7 100644
--- a/frontend/src/views/framework/sqlitedb/Index.vue
+++ b/frontend/src/views/framework/sqlitedb/Index.vue
@@ -31,12 +31,12 @@