在qt中创建一个数据库连接类
Create a class for database connection in qt
嗨,我是一个初学者在Gui开发使用qt。我有一个项目,我必须使用mysql数据库。我想知道如何创建一个类为我的连接到数据库和查询,所以这将是很容易的,我调用这个类在不同的窗口和执行sql查询
我可以给你我的类的源代码连接到我的数据库。我将特定的数据库数据保存在一个txt文件中,所以如果我将它安装在另一台计算机上,我就可以使这个txt文件适合。这里是header:
#ifndef DATENBANK_H
#define DATENBANK_H
#include <QtSql>
#include <QDebug>
#include <fstream>
#include <string>
using namespace std;
class Datenbank
{
public:
QSqlDatabase db;
bool connData();
void discData();
Datenbank();
};
#endif // DATENBANK_H
这里是cpp文件。应该正是你要找的
#include "datenbank.h"
Datenbank::Datenbank()
{
}
bool Datenbank::connData()
{
//txt file um Datenbankdaten auszulesen
fstream data;
string Databasename,Hostname,Username,Password,Driver,Crapreader;
//txt oeffnen
data.open("Datenbank.txt",ios::in);
if (!data.is_open())
{
qDebug()<<("Failed to open 'Datenbank.txt'");
}
//get data from text file, crapreader gets stuff which is irrelevant
data>>Crapreader>>Driver;
data>>Crapreader>>Databasename;
data>>Crapreader>>Hostname;
data>>Crapreader>>Username;
data>>Crapreader>>Password;
data.close();
QString qDriver = QString::fromStdString(Driver);
QString qDatabasename = QString::fromStdString(Databasename);
QString qHostname = QString::fromStdString(Hostname);
QString qUsername = QString::fromStdString(Username);
QString qPassword = QString::fromStdString(Password);
db = QSqlDatabase::addDatabase(qDriver);
db.setDatabaseName(qDatabasename);
db.setHostName(qHostname);
db.setUserName(qUsername);
db.setPassword(qPassword);
if(!db.open())
{
qDebug()<<("Failed to open Database");
return false;
}
else
{
qDebug()<<("Connected.....");
return true;
}
}
void Datenbank::discData()
{
QString connection;
connection=db.connectionName();
db.close();
db=QSqlDatabase();
db.removeDatabase(connection);
//db.removeDatabase(QSqlDatabase::defaultConnection);
qDebug()<<("Disc.....");
}
Qt有驱动程序…http://doc.qt.io/qt-5/sql-driver.html,对于连接,您不需要创建类。您应该为此目的使用类。示例http://doc.qt.io/qt-5/sql-connecting.html显示了如何连接。Qt有许多示例和体面的文档。开始阅读类
- QSqlQuery
- QSqlDatabase
相关文章:
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 如何在qt中将信号和插槽与另一个对象连接 --解决了
- 如何在多个线程中创建 QSql数据库连接时防止名称冲突
- 如何使用C ++将SQLite数据库中的所有表从一个数据库复制到另一个数据库
- 数据库连接并将数据从C ++程序保存到MySQL
- 在 C++ 中获取数据库连接
- Firebase C++ Windows 上的实时数据库连接丢失
- 我不能使用 mysql 数据库连接同时使用插入和选择.C++
- C++ Qt SQL lite 数据库连接问题
- C++ 程序中的数据库连接检查
- 打开与 Qt/C++ 的数据库连接
- 如何修复数据库连接的C 程序运行时间错误(0xc0000005)
- 使用libpq组织PostgreSQL数据库连接参数
- GLM如何在不声明内联函数并在另一个(未连接的?)文件中将其定义的函数逃脱
- 将两个向量与另一个向量连接起来
- Qt 中的数据库连接池
- Qt-同时处理多个数据库连接
- 是否可以将一个类别的插槽或常规功能从一个类连接到另一个类的插槽或常规功能?(QT)
- MySQL数据库连接到一个c++win32项目
- 在qt中创建一个数据库连接类