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 @@ - + 修改目录 - + 打开目录 @@ -86,7 +86,8 @@
- + + @@ -114,12 +115,14 @@
- + + - + + @@ -138,7 +141,8 @@
- + + @@ -155,109 +159,108 @@
-