sqlite数据库
sqlite数据库的常用操作
# 增删改查数据数据
// frontend/src/views/framework/sqlitedb/Index.vue
<script>
// ac: 'add' | 'del' | 'update' | 'get'
sqlitedbOperation (ac) {
const params = {
action: ac,
info: {
name: this.name,
age: parseInt(this.age)
},
search_age: parseInt(this.search_age),
update_name: this.update_name,
update_age: parseInt(this.update_age),
delete_name: this.delete_name,
}
if (ac == 'add' && this.name.length == 0) {
this.$message.error(`请填写数据`);
}
this.$ipc.invoke(ipcApiRoute.sqlitedbOperation, params).then(res => {
console.log('res:', res);
if (ac == 'get') {
if (res.result.length == 0) {
this.$message.error(`没有数据`);
return;
}
this.userList = res.result;
}
if (res.all_list.length == 0) {
this.all_list = ['空'];
return;
}
this.all_list = res.all_list;
this.$message.success(`success`);
})
},
</script>
// electron/controller/framework.js
/**
* sqlite数据库操作
*/
async sqlitedbOperation(args) {
const { service } = this;
const paramsObj = args;
const data = {
action: paramsObj.action,
result: null,
all_list: []
};
switch (paramsObj.action) {
case 'add' :
data.result = await service.storage.addTestDataSqlite(paramsObj.info);;
break;
case 'del' :
data.result = await service.storage.delTestDataSqlite(paramsObj.delete_name);;
break;
case 'update' :
data.result = await service.storage.updateTestDataSqlite(paramsObj.update_name, paramsObj.update_age);
break;
case 'get' :
data.result = await service.storage.getTestDataSqlite(paramsObj.search_age);
break;
case 'getDataDir' :
data.result = await service.storage.getDataDir();
break;
case 'setDataDir' :
data.result = await service.storage.setCustomDataDir(paramsObj.data_dir);
break;
}
data.all_list = await service.storage.getAllTestDataSqlite();
return data;
}
// Make sure to add code blocks to your code group
# 修改数据文件(xx.db)的存储目录
// frontend/src/views/framework/sqlitedb/Index.vue
<script>
selectDir() {
this.$ipc.invoke(ipcApiRoute.selectFolder, '').then(r => {
this.data_dir = r;
// 修改数据目录
this.modifyDataDir(r);
})
},
modifyDataDir(dir) {
const params = {
action: 'setDataDir',
data_dir: dir
}
this.$ipc.invoke(ipcApiRoute.sqlitedbOperation, params).then(res => {
this.all_list = res.all_list;
})
},
</script>
// electron/controller/os.js
/**
* 选择目录
*/
selectFolder() {
const filePaths = dialog.showOpenDialogSync({
properties: ['openDirectory', 'createDirectory']
});
if (_.isEmpty(filePaths)) {
return null
}
return filePaths[0];
}
// Make sure to add code blocks to your code group
# 打开数据文件(xx.db)所在目录
// frontend/src/views/framework/sqlitedb/Index.vue
<script>
openDir() {
this.$ipc.invoke(ipcApiRoute.openDirectory, {id: this.data_dir}).then(res => {
//
})
},
</script>
// electron/controller/os.js
const { app: electronApp, shell } = require('electron');
/**
* 打开目录
*/
openDirectory(args) {
if (!args.id) {
return false;
}
let dir = '';
if (path.isAbsolute(args.id)) {
dir = args.id;
} else {
dir = electronApp.getPath(args.id);
}
shell.openPath(dir);
return true;
}
// Make sure to add code blocks to your code group
# 完整代码
上次更新: 2025/04/10, 03:07:49