基于sqlite的Qt 数据库封装
            时间:2014-05-29 16:19:41  
            收藏:0  
            阅读:419
        
        
        [代码] mydata.h 
| 10 | #ifndef MYDATA_H | 
| 11 | #define MYDATA_H | 
| 12 | #include <QObject> | 
| 13 | #include <QString> | 
| 14 | #include <QtSql/QSqlTableModel> | 
| 15 | #include <QtSql/QSqlQuery> | 
| 16 | #include <QStringList> | 
| 17 | #include <QtSql/QSqlDatabase> | 
| 18 | 
| 19 | classmydata : publicQObject | 
| 20 | { | 
| 21 |     Q_OBJECT | 
| 22 | public: | 
| 23 |     explicitmydata(QObject *parent = 0); | 
| 24 |     ~mydata(); | 
| 25 |     voidSetTableName(QString table); | 
| 26 |     boolopendatabase(); | 
| 27 | 
| 28 |     boolinsert(QString &table, QStringList &names,QStringList &values); | 
| 29 | 
| 30 |     boolUpdata(QString &table, QStringList &names,QStringList &values, QString &expression); | 
| 31 | 
| 32 |     booldel(QString &table, QString &expression); | 
| 33 | 
| 34 |     voidGetValues(QString &table, QStringList &values); | 
| 35 | private: | 
| 36 |     QSqlTableModel *model; | 
| 37 |     QSqlDatabase _db; | 
| 38 |     QString _tableName; | 
| 39 | 
| 40 | }; | 
| 41 | 
| 42 | #endif // MYDATA_H | 
 mydata.cpp 
| 001 | /**************************************************************************** | 
| 002 | ** | 
| 003 | ** Copyright (C) 2013 C,g | 
| 004 | ** All rights reserved. | 
| 005 | ** Contact: 1213125967@qq.com | 
| 006 | ** Please keep the author contact information. | 
| 007 | ** 2013-10-31 | 
| 008 | ** | 
| 009 | ****************************************************************************/ | 
| 010 | #include <QtSql/QSqlQuery> | 
| 011 | #include <QObject> | 
| 012 | #include "mydata.h" | 
| 013 | 
| 014 | mydata::mydata(QObject *parent) : | 
| 015 |     QObject(parent) | 
| 016 | { | 
| 017 | 
| 018 | } | 
| 019 | 
| 020 | mydata::~mydata() | 
| 021 | { | 
| 022 |     _db.close(); | 
| 023 | } | 
| 024 | 
| 025 | voidmydata::SetTableName(QString table) | 
| 026 | { | 
| 027 |     _tableName = table + ".db"; | 
| 028 | } | 
| 029 | 
| 030 | /* | 
| 031 |     打开数据库. | 
| 032 | */ | 
| 033 | boolmydata::opendatabase() | 
| 034 | { | 
| 035 |     _db = QSqlDatabase::addDatabase("QSQLITE"); | 
| 036 |     _db.setDatabaseName(_tableName); | 
| 037 |     return_db.open(); | 
| 038 | } | 
| 039 | 
| 040 | /* | 
| 041 |     插入函数. | 
| 042 |     构造SQL插入语句. | 
| 043 | */ | 
| 044 | boolmydata::insert(QString &table, QStringList &names, QStringList &values) | 
| 045 | { | 
| 046 |     if(names.size() != values.size()) | 
| 047 |     { | 
| 048 |         returnfalse; | 
| 049 |     } | 
| 050 | 
| 051 |     QSqlQuery query(QSqlDatabase::database()); | 
| 052 | 
| 053 |     QString sql = QString("insert into ") + table + QString("("); | 
| 054 | 
| 055 |     inti; | 
| 056 | 
| 057 |     for(i=0; i < names.size(); i++) | 
| 058 |     { | 
| 059 |         sql = sql + names.value(i); | 
| 060 |         if(i != names.size() - 1) | 
| 061 |         { | 
| 062 |             sql+=QString(","); | 
| 063 |         } | 
| 064 |         else | 
| 065 |         { | 
| 066 | 
| 067 |             sql = sql + QString(")"); | 
| 068 |         } | 
| 069 |     } | 
| 070 | 
| 071 |     sql = sql + QString("values ("); | 
| 072 | 
| 073 |     for(i = 0; i < values.size(); i++) | 
| 074 |     { | 
| 075 |         sql = sql + QString("‘") + values.value(i) + QString("‘"); | 
| 076 |         if(i != values.size()-1) | 
| 077 |         { | 
| 078 |             sql = sql + QString(","); | 
| 079 |         } | 
| 080 |     } | 
| 081 | 
| 082 |     sql = sql + QString(")"); | 
| 083 | 
| 084 |     if(query.exec(sql)) | 
| 085 |     { | 
| 086 |         returntrue; | 
| 087 |     } | 
| 088 |     else | 
| 089 |     { | 
| 090 |         returnfalse; | 
| 091 |     } | 
| 092 | } | 
| 093 | 
| 094 | /* | 
| 095 |     修改函数. | 
| 096 |     构造SQL修改语句. | 
| 097 | */ | 
| 098 | boolmydata::Updata(QString &table, QStringList &names, QStringList &values, QString &expression) | 
| 099 | { | 
| 100 |     if(names.size() != values.size()) | 
| 101 |     { | 
| 102 |         returnfalse; | 
| 103 |     } | 
| 104 | 
| 105 |     //UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 | 
| 106 |     QSqlQuery query(QSqlDatabase::database()); | 
| 107 |     QString sql = QString("update ")+table+QString(" set "); | 
| 108 |     for(inti = 0; i < names.size(); i++) | 
| 109 |     { | 
| 110 |         sql = sql + names.value(i); | 
| 111 |         sql = sql + QString(" = ‘"); | 
| 112 |         sql = sql + values.value(i); | 
| 113 |         sql = sql + QString("‘"); | 
| 114 |         if(i != names.size()-1) | 
| 115 |         { | 
| 116 |             sql = sql + QString(" ,"); | 
| 117 |         } | 
| 118 |     } | 
| 119 | 
| 120 |     sql = sql + QString(" where ") + expression; | 
| 121 |     if(query.exec(sql)) | 
| 122 |     { | 
| 123 |         returntrue; | 
| 124 |     } | 
| 125 |     else | 
| 126 |     { | 
| 127 |         returnfalse; | 
| 128 |     } | 
| 129 | } | 
| 130 | 
| 131 | /* | 
| 132 |     删除函数. | 
| 133 |     构造SQL删除语句. | 
| 134 | */ | 
| 135 | boolmydata::del(QString &table, QString &expression) | 
| 136 | { | 
| 137 |     //DELETE FROM 表名称 WHERE 列名称 = 值 | 
| 138 |     QSqlQuery query(QSqlDatabase::database()); | 
| 139 |     QString sql = QString("delete from ") + table + QString(" where ") + expression; | 
| 140 | 
| 141 |     if(query.exec(sql)) | 
| 142 |     { | 
| 143 |         returntrue; | 
| 144 |     } | 
| 145 |     else | 
| 146 |     { | 
| 147 |         returnfalse; | 
| 148 |     } | 
| 149 | } | 
| 150 | 
| 151 | voidmydata::GetValues(QString &table, QStringList &values) | 
| 152 | { | 
| 153 |     QSqlQuery query(QSqlDatabase::database()); | 
| 154 |     QString sql = QString("select * from ") + table; | 
| 155 |     query.exec(sql); | 
| 156 |     while(query.next()) | 
| 157 |     { | 
| 158 |         values << query.value(0).toString(); | 
| 159 |     } | 
| 160 | } | 
            评论(0)
        
        
        