feat rewrite sqlite

This commit is contained in:
gaoshuaixing
2024-12-27 19:33:19 +08:00
parent 9b92a6ae2d
commit 83f6cc33b1
5 changed files with 70 additions and 35 deletions

View File

@@ -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 { getHttpServer } = require('ee-core/socket');
const { frameworkService } = require('../service/database/sqlitedb');
/**
* framework - demo

View File

@@ -0,0 +1,43 @@
'use strict';
const { SqliteStorage } = require('ee-core/storage');
const { getStorageDir } = require('ee-core/ps');
const path = require('path');
/**
* sqlite数据存储
* @class
*/
class BasedbService {
constructor(options) {
super();
const { dbname } = options;
this.dbname = dbname;
this.db = undefined;
this._init();
}
/*
* 初始化
*/
_init() {
// 定义数据文件
const dbFile = path.join(getStorageDir(), "db", this.dbname);
const sqliteOptions = {
driver: 'sqlite',
default: {
timeout: 6000,
verbose: null // 打印sql语法 console.log
}
}
const storage = new SqliteStorage(dbFile, sqliteOptions);
this.db = storage.db;
}
}
BasedbService.toString = () => '[class BasedbService]';
module.exports = {
BasedbService,
};

View File

@@ -1,5 +1,6 @@
'use strict';
const { BasedbService } = require('./basedb');
const Storage = require('ee-core/storage');
const _ = require('lodash');
const path = require('path');
@@ -8,45 +9,35 @@ const path = require('path');
* sqlite数据存储
* @class
*/
class SqlitedbService {
class SqlitedbService extends BasedbService {
constructor () {
this.sqliteFile = 'sqlite-demo.db';
let sqliteOptions = {
driver: 'sqlite',
default: {
timeout: 6000,
verbose: console.log // 打印sql语法
}
const options = {
dbname:'sqlite-demo.db',
}
this.demoSqliteDB = Storage.connection(this.sqliteFile, sqliteOptions);
super(options);
this._initTable();
}
/*
* 检查并创建表 (sqlite)
* 初始化表
*/
async checkAndCreateTableSqlite(tableName = '') {
if (_.isEmpty(tableName)) {
throw new Error(`table name is required`);
}
_initTable() {
// 检查表是否存在
const userTable = this.demoSqliteDB.db.prepare('SELECT * FROM sqlite_master WHERE type=? AND name = ?');
const result = userTable.get('table', tableName);
//console.log('result:', result);
if (result) {
return;
const userTableName = 'user';
const masterStmt = this.db.prepare('SELECT * FROM sqlite_master WHERE type=? AND name = ?');
let tableExists = masterStmt.get('table', userTableName);
if (!tableExists) {
// 创建表
const create_user_table_sql =
`CREATE TABLE ${userTableName}
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name CHAR(50) NOT NULL,
age INT
);`
this.db.exec(create_user_table_sql);
}
// 创建表
const create_table_user =
`CREATE TABLE ${tableName}
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name CHAR(50) NOT NULL,
age INT
);`
this.demoSqliteDB.db.exec(create_table_user);
}
/*

View File

@@ -1,5 +1,5 @@
<template>
<div id="app-base-db">
<div id="app-sqlite-db">
<div class="one-block-1">
<span>
1. sqlite本地数据库
@@ -260,7 +260,7 @@ export default {
};
</script>
<style lang="less" scoped>
#app-base-db {
#app-sqlite-db {
padding: 0px 10px;
text-align: left;
width: 100%;

View File

@@ -34,7 +34,7 @@
"build-l-armv7l": "electron-builder --config=./electron/config/builder.json -l=deb --armv7l",
"build-lr-64": "electron-builder --config=./electron/config/builder.json -l=rpm --x64",
"build-lp-64": "electron-builder --config=./electron/config/builder.json -l=pacman --x64",
"test": "cross-env DEBUG=* ee-bin dev --serve=electron"
"test": "cross-env DEBUG=ee-core* ee-bin dev --serve=electron"
},
"repository": "https://github.com/dromara/electron-egg.git",
"keywords": [
@@ -45,15 +45,16 @@
"author": "哆啦好梦, Inc <530353222@qq.com>",
"license": "Apache",
"devDependencies": {
"@electron/rebuild": "^3.7.1",
"cross-env": "^7.0.3",
"debug": "^4.4.0",
"ee-bin": "file:.yalc/ee-bin",
"ee-bin-ts": "file:.yalc/ee-bin-ts",
"electron": "^29.4.0",
"electron-builder": "^25.1.8"
},
"dependencies": {
"axios": "^1.7.9",
"better-sqlite3": "^11.7.0",
"dayjs": "^1.11.13",
"ee-core": "file:.yalc/ee-core",
"electron-updater": "^6.3.8"