我是使用qt在Gui开发中的初学者。 我有一个项目,我必须使用mysql数据库。我想知道如何为我与数据库和查询的连接创建一个类,这样我就可以很容易地在不同的窗口中调用这个类并执行sql查询
答案 0 :(得分:0)
Qt有驱动程序... http://doc.qt.io/qt-5/sql-driver.html,对于你没有创建类的连接。您应该为此目的使用类。示例http://doc.qt.io/qt-5/sql-connecting.html显示了如何连接。 Qt有很多例子和体面的文档。开始阅读有关课程的内容
答案 1 :(得分:0)
我可以给你我班级的源代码,用于连接我的数据库。我将我的特定数据库数据保存在一个txt文件中,所以如果我将它安装在另一台计算机上,我可以让txt文件适合。 标题为:
#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.....");
}