【接口封装】——7、连接并使用 MySQL 数据库

发布于:2024-11-28 ⋅ 阅读:(16) ⋅ 点赞:(0)

头文件:

#include <qsqlquery.h>
#include <qsqldatabase.h>

(注:需要先适配数据库)

函数定义:

public:
	bool verifyLogin(const QString& account, const QString& password);
	QString getUserName(const QString& account);
	QString getUserHeadPixmap(const QString& account);

private:
	bool connectMySQL();

private:
	QSqlDatabase base;

源代码:

        连接:


bool UseMySQL::connectMySQL()
{
	if(DEBUG)	qDebug() << QSqlDatabase::drivers();

	//开始连接数据库
	base = QSqlDatabase::addDatabase(DB_DRIVER, DB_CONN_NAME);
	base.setDatabaseName(DB_NAME);
	base.setHostName(DB_HOST_NAME);
	base.setUserName(DB_ACCOUNT);
	base.setPassword(DB_PASSWORD);
	base.setPort(DB_PORT);

    if(!base.open())    return false;
    return true;
}

        使用:

bool UseMySQL::verifyLogin(const QString & account, const QString & password)
{
	//构造时就会执行一次
	QSqlQuery sql(QString("SELECT code FROM accounts WHERE ID = %1").arg(account),base);
	if (sql.next()) {
		QString result = sql.value(0).toString();
		if (result == password) {
			return true;
		}
	}
	return false;

}
QString UseMySQL::getUserName(const QString & account)
{
	QSqlQuery sql(QString("SELECT Name FROM tab WHERE ID = %1").arg(account), base);
	if (sql.next()) {
		QString result = sql.value(0).toString();
		return result;
	}

	return QString();
}
QString UseMySQL::getUserHeadPixmap(const QString & account)
{
	QSqlQuery sql(QString("SELECT picture FROM tab WHERE ID = %1").arg(account), base);
	if (sql.next()) {
		QString result = sql.value(0).toString();
		return result;
	}

	return QString();
}