/
qsqlmanager.cpp
121 lines (108 loc) · 3.05 KB
/
qsqlmanager.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include "qsqlmanager.h"
#include "global.h"
#include "qfile.h"
#include "qdir.h"
QSQLManager* QSQLManager::instance = nullptr;
QString QSQLManager::dbname="db";
QSqlDatabase QSQLManager::db;
QString QSQLManager::tablename="dbtable";
QSQLManager::QSQLManager()
{
}
QSQLManager* QSQLManager::getInstance()
{
if(instance == nullptr){
instance = new QSQLManager();
QString path;
QDir dir;
path=dir.currentPath();
bool isCreate = QFile::exists(path+"/"+dbname);
if(!instance->openDatabase()){
addConsoleInfo("打开数据库失败");
}
if(!isCreate){
if(!instance->createTable()){
addConsoleInfo("创建数据表失败");
}
}
}
return instance;
}
bool QSQLManager::openDatabase()
{
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(dbname);
if(!db.open()){
return false;
}
return true;
}
bool QSQLManager::createTable()
{
QSqlQuery query(db);
query.exec("DROP table " + tablename);
bool result = query.exec("create table " + tablename + " (id int primary key, " +
"openDir varchar(255), generateDir varchar(255)" +
", filterFile varchar(255)" + ")");
if(!result)return false;
QString insert_table = "insert into " + tablename + " values (1, '" + QDir::currentPath() +
"', '" + QDir::currentPath() + "', '" + QDir::currentPath() + "/filter.txt'" + ")";
if(!query.exec(insert_table)){
return false;
}
return true;
}
QString QSQLManager::getOpenDir()
{
QString select_sql = "select openDir from dbtable where id = 1";
QSqlQuery query(db);
query.exec(select_sql);
while(query.next()){
return query.value("openDir").toString();
}
return "";
}
bool QSQLManager::setOpenDir(QString dir)
{
QString update_sql = "update dbtable set openDir = :dir where id = 1";
QSqlQuery query(db);
query.prepare(update_sql);
query.bindValue(":dir", dir);
return query.exec();
}
QString QSQLManager::getGenerateDir()
{
QString select_sql = "select generateDir from dbtable where id = 1";
QSqlQuery query(db);
query.exec(select_sql);
while(query.next()){
return query.value("generateDir").toString();
}
return "";
}
bool QSQLManager::setGenerateDir(QString dir)
{
QString update_sql = "update dbtable set generateDir = :dir WHERE id = 1";
QSqlQuery query(db);
query.prepare(update_sql);
query.bindValue(":dir", dir);
return query.exec();
}
bool QSQLManager::setFilterFile(QString file)
{
QString update_sql = "update dbtable set filterFile = :file WHERE id = 1";
QSqlQuery query(db);
query.prepare(update_sql);
query.bindValue(":file", file);
return query.exec();
}
QString QSQLManager::getFilterFile()
{
QString select_sql = "select filterFile from dbtable where id = 1";
QSqlQuery query(db);
query.exec(select_sql);
while(query.next()){
return query.value("filterFile").toString();
}
return "";
}