Qt开发,将数据库封装
来源:互联网 发布:马尔科夫人力资源矩阵 编辑:程序博客网 时间:2024/06/06 07:24
开发环境vs2010+Qt4.8.6
项目目录树:
SourceFiles:
- main.cpp
- UserSqlClass.h
- UserSqlClass.cpp
SQL:
- sql_interface.h
- sql_interface.cpp
main.cpp
#include <QtGui/QApplication>#include <QtCore>#include <QtSql>int main(int argc,char *argv[]){ QApplication a(argc,argv); UserSqlClass w; w.show(); return a.exec();}
数据库类SqlClass的声明形式:
sql_interface.h
class SqlClass : publc QObject{ Q_OBJECTprivate: QSqlDatabase* db;public: SqlClass(QObject* parent = 0); virtual ~SqlClass();public: bool OpenDatabase();};
类SqlClass的实现
sql_interface.cpp
SqlClass::SqlClass(QObject* parent):QObject(parent){}bool SqlClass::OpenDatabase(){ db = &QSqlDatabase::addDatabase("QODBC","xxxx"); if(!db->isValid()) { qDebug() << db->lastError().text(); return false; } db->setHostName("xxx,xx,xx,xx"); db->setDatabaseName("DRIVER={SQL SERVER};SERVER=xx.xx.xx.xx;DATABASE=xxx"); db->setUserName("xxx"); db->setPassword("123456"): if( !db->open() ) { QMessageBox::warning(NULL,"database error","Cannot open DB",QMessageBox::Cancel); return false; } return true;}SqlClass::~SqlClass(){}
UserSqlClass类的声明形式。
UserSqlClass.h
class UserSqlClass : public QMainWindow{ Q_OBJECTprivate: Ui::UserSqlClass ui; SqlClass* mainSql;public: UserSqlClass(QWidget *parent=0,Qt::WFlags flags = 0); ~UserSqlClass();};
UserSqlClass的构造函数:
UserSqlClass.cpp
UserSqlClass::UserSqlClass(QWidget *parent,Qt::WFlags flags) : QMainWindow(parent,flags){ ui.setupUi(this); mainSql = new SqlClass(this);}UserSqlClass::~UserSqlClass(){}
这里很多都是比较基础的知识点,不做过多解释。
主要讲解的是SqlClass类的声明。
QObject是所有Qt类的基类,所有如果像需要用到信号槽的最好是需要继承QObject,而类SqlClass声明里的Q_OBJECT宏也是必须的。
还要注意的是SqlClass的析构函数使 虚析构函数,这样可以在释放的时候向下释放,相关知识可查虚析构函数。
原本这里的db设置是打算写成传参函数的,这样的扩展性会比较强一点,而这里主要用于做简单例子也就免去了。
还有最最总要的一点是将,QSqlDatabase db,SqlClass mainSql声明为指针,这里可保证是对同一次链接对象进行操作。面向对象的思想就是将一次链接视为一个对象,这个对象就可以执行SQL操作。
0 0
- Qt开发,将数据库封装
- 【Qt开发】将内存图像数据封装成QImage V2
- Qt数据库集成应用封装
- 【转】将QT开发的界面程序封装成DLL,在VC中成功调用
- 将QT开发的界面程序封装成DLL,在VC中成功调用
- 【Qt开发】如何将内存图像数据封装成QImage V1
- 将QT开发的界面程序封装成DLL,在VC中成功调用
- 【转】将QT开发的界面程序封装成DLL,在VC中成功调用
- 【Qt开发】Qt应用程序发布封装
- QT数据库封装类-支持多线程
- 将数据库操作封装到Javabean
- 将数据库操作封装到Javabean
- 将数据库操作封装到Javabean(转载)
- 将数据库操作封装到Javabean
- 将数据库操作封装到Javabean
- JAVA基础:将数据库操作封装
- Qt数据库开发实例(sqlite数据库)
- 将vim作为QT开发的IDE
- 理解 Android Build 系统
- 线程的分离状态
- 【Cococs2d-x】通过TexturePacker加密图片资源(Cocos2d-x方式)
- jsp与js 学习笔记1
- Ubuntu 中安装fcitx中文输入法,五笔和拼音
- Qt开发,将数据库封装
- 5.1 GRO(Generic Receive Offload)
- 九种引人瞩目的开源大数据技术
- ssjs-记录-1
- CFNetwork读取iOS设备的代理设置
- 加盟
- Java synchronized、wait、notify实现线程(生成消费者模式)
- 使用Aop和AbstractRoutingDataSource实现多数据源的配置
- eclipse导出javadoc