1、XML读取操作
QString DBHelper::readXmlfile(const QString &filePath, const QString& valueName)
{
//打开或创建文件
QFile file(filePath);
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{
//构建QXmlStreamReader对象
QXmlStreamReader reader(&file);
while (!reader.atEnd())
{
if (reader.name() == valueName)
{
return reader.readElementText();
}
else
{
reader.readNext();
}
}
file.close();
}
else
{
return "配置文件打开失败!";
}
return "nullptr";
}
2、数据库连接操作
bool DBHelper::ConnDB()
{
// db = QSqlDatabase::addDatabase("QMYSQL");
// db.setHostName("127.0.0.1");
// db.setPort(3306);
// db.setDatabaseName("planedb");
// db.setUserName("root");
// db.setPassword("123456");
db = QSqlDatabase::addDatabase("QMYSQL");
QString filePath = "D:\\baby\\qtTest\\plane";
QString hostName = "hostName";
QString port = "port";
QString datebase = "datebase";
QString username = "username";
QString passWord = "passWord";
if(readXmlfile(filePath, hostName) == "false")
{
qDebug() << QStringLiteral("XML文件打开失败!");
return false;
}
db.setHostName(readXmlfile(filePath, hostName));
db.setPort(readXmlfile(filePath, port).toInt());
db.setDatabaseName(readXmlfile(filePath, datebase));
db.setUserName(readXmlfile(filePath, username));
db.setPassword(readXmlfile(filePath, passWord));
return db.open();
}
3、开始连接数据库
bool dbhlper = m_pDBHelper->ConnDB();
if(!dbhlper)
{
QMessageBox::warning(this, "connectDB", "error", QMessageBox::Ok);
return;
}
QMessageBox::warning(this, "connectDB", "success", QMessageBox::Ok);
4、补充xml文件详情
<?xml version="1.0" encoding="UTF-8"?>
<paras>
<DataBaseConfig>
<hostName>127.0.0.1</hostName>
<port>3306</port>
<datebase>planedb</datebase>
<username>root</username>
<passWord>123456</passWord>
</DataBaseConfig>
</paras>