数据库连接配置

pull/4/head
huaijin 2 weeks ago
parent cddb551220
commit 59fdd22e16

@ -0,0 +1,15 @@
{
"files.associations": {
"complex": "cpp",
"bitset": "cpp",
"chrono": "cpp",
"algorithm": "cpp",
"variant": "cpp",
"string": "cpp",
"system_error": "cpp",
"fstream": "cpp",
"thread": "cpp",
"typeinfo": "cpp",
"qwidget": "cpp"
}
}

@ -0,0 +1,70 @@
{
"files.associations": {
"bitset": "cpp",
"chrono": "cpp",
"algorithm": "cpp",
"fstream": "cpp",
"deque": "cpp",
"list": "cpp",
"string": "cpp",
"unordered_map": "cpp",
"vector": "cpp",
"system_error": "cpp",
"complex": "cpp",
"variant": "cpp",
"thread": "cpp",
"typeinfo": "cpp",
"qpushbutton": "cpp",
"condition_variable": "cpp",
"array": "cpp",
"string_view": "cpp",
"initializer_list": "cpp",
"utility": "cpp",
"optional": "cpp",
"istream": "cpp",
"ostream": "cpp",
"ratio": "cpp",
"functional": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"cctype": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"atomic": "cpp",
"bit": "cpp",
"cstdint": "cpp",
"map": "cpp",
"set": "cpp",
"exception": "cpp",
"iterator": "cpp",
"memory": "cpp",
"memory_resource": "cpp",
"numeric": "cpp",
"random": "cpp",
"future": "cpp",
"iomanip": "cpp",
"iosfwd": "cpp",
"iostream": "cpp",
"limits": "cpp",
"mutex": "cpp",
"new": "cpp",
"sstream": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"cinttypes": "cpp",
"qmouseevent": "cpp",
"qpainter": "cpp",
"qdebug": "cpp",
"qcoreapplication": "cpp",
"qsqlerror": "cpp",
"qsqlquery": "cpp"
}
}

@ -24,6 +24,8 @@ SOURCES += \
src/main.cpp \
src/core/database/UAVDatabase.cpp \
src/core/database/DogDatabase.cpp \
src/core/database/DatabaseConfig.cpp \
src/core/database/DatabaseHelper.cpp \
src/ui/main/MainWindow.cpp \
src/ui/dialogs/DeviceDialog.cpp \
src/ui/components/DeviceCard.cpp \
@ -36,6 +38,8 @@ SOURCES += \
HEADERS += \
include/core/database/UAVDatabase.h \
include/core/database/DogDatabase.h \
include/core/database/DatabaseConfig.h \
include/core/database/DatabaseHelper.h \
include/ui/main/MainWindow.h \
include/ui/dialogs/DeviceDialog.h \
include/ui/components/DeviceCard.h \

@ -0,0 +1,39 @@
# 战场探索系统数据库配置文件
# Database Configuration for BattlefieldExplorationSystem
#
# 修改此文件中的配置后,重启应用程序生效
# Restart the application after modifying this configuration file
[Database]
# 数据库服务器地址 (Database server host)
host=localhost
# 数据库端口 (Database port)
port=3306
# 数据库名称 (Database name)
databaseName=Client
# 数据库用户名 (Database username)
username=root
# 数据库密码 (Database password)
password=root
# 连接超时时间,单位毫秒 (Connection timeout in milliseconds)
connectionTimeout=30000
# 数据库驱动名称 (Database driver name)
driverName=QMYSQL
# 配置说明:
# 1. 如果你的MySQL用户名不是root请修改username字段
# 2. 如果你的MySQL密码不是root请修改password字段
# 3. 如果你的MySQL运行在不同的主机或端口请修改host和port字段
# 4. 如果你使用不同的数据库名称请修改databaseName字段
#
# Configuration Notes:
# 1. If your MySQL username is not 'root', modify the username field
# 2. If your MySQL password is not 'root', modify the password field
# 3. If your MySQL runs on different host or port, modify host and port fields
# 4. If you use different database name, modify databaseName field

@ -112,6 +112,7 @@ protected:
private:
QString m_deviceName; ///< 设备名称
QLabel *m_iconLabel; ///< 图标标签
QLabel *m_nameLabel; ///< 名称标签
QLabel *m_statusLabel; ///< 状态标签
bool m_isActive = false; ///< 是否选中状态

@ -1,4 +1,5 @@
#include "core/database/DogDatabase.h"
#include "core/database/DatabaseConfig.h"
// 单例实例指针定义
DogDatabase *DogDatabase::m_instance = nullptr;
@ -27,7 +28,8 @@ DogDatabase::DogDatabase()
//添加记录
bool DogDatabase::addDevice(const Dog &data)
{
if(openDatabase("fly_land_database","root","hzk200407140238"))
DatabaseConnectionInfo dbInfo = DatabaseConfig::getInstance()->getConnectionInfo();
if(openDatabase(dbInfo.databaseName, dbInfo.username, dbInfo.password))
{
beginAddField("dogdatabase");
addField("id");
@ -63,7 +65,8 @@ Point DogDatabase::getDevicePosition(const QString &id)
position.lon = 0;
position.lat = 0;
if(openDatabase("fly_land_database","root","hzk200407140238"))
DatabaseConnectionInfo dbInfo = DatabaseConfig::getInstance()->getConnectionInfo();
if(openDatabase(dbInfo.databaseName, dbInfo.username, dbInfo.password))
{
QSqlQuery query(m_sqlDatabase);
@ -99,7 +102,8 @@ Point DogDatabase::getDevicePosition(const QString &id)
int DogDatabase::getDeviceState(const QString &id)
{
int state = -1;
if(openDatabase("fly_land_database","root","hzk200407140238"))
DatabaseConnectionInfo dbInfo = DatabaseConfig::getInstance()->getConnectionInfo();
if(openDatabase(dbInfo.databaseName, dbInfo.username, dbInfo.password))
{
QSqlQuery query(m_sqlDatabase);

@ -1,4 +1,5 @@
#include "core/database/UAVDatabase.h"
#include "core/database/DatabaseConfig.h"
UAVDatabase *UAVDatabase::getInstance()
{
@ -21,7 +22,8 @@ UAVDatabase::UAVDatabase()
//添加记录
bool UAVDatabase::add(const UAV &data)
{
if(open("fly_land_database","root","hzk200407140238"))
DatabaseConnectionInfo dbInfo = DatabaseConfig::getInstance()->getConnectionInfo();
if(open(dbInfo.databaseName, dbInfo.username, dbInfo.password))
{
beginAddFiled("uavdatabase");
addFiled("id");
@ -57,7 +59,8 @@ Point UAVDatabase::ReturnUAVPosition(QString id)
position.lon = 0;
position.lat = 0;
if(open("fly_land_database","root","hzk200407140238"))
DatabaseConnectionInfo dbInfo = DatabaseConfig::getInstance()->getConnectionInfo();
if(open(dbInfo.databaseName, dbInfo.username, dbInfo.password))
{
QSqlQuery query(m_sqlDb);
@ -93,7 +96,8 @@ Point UAVDatabase::ReturnUAVPosition(QString id)
int UAVDatabase::giveInfo(QString id)
{
int state = -1;
if(open("fly_land_database","root","hzk200407140238"))
DatabaseConnectionInfo dbInfo = DatabaseConfig::getInstance()->getConnectionInfo();
if(open(dbInfo.databaseName, dbInfo.username, dbInfo.password))
{
QSqlQuery query(m_sqlDb);

@ -8,6 +8,7 @@
#include "ui/components/DeviceCard.h"
#include "utils/SystemLogger.h"
#include "core/database/DatabaseHelper.h"
// Qt GUI头文件
#include <QMouseEvent>
@ -729,12 +730,7 @@ bool DeviceCard::updateDeviceStatusInDatabase(DeviceStatus status)
{
// 创建唯一的数据库连接名称(包含时间戳避免重复)
QString connectionName = QString("DeviceCard_%1_%2").arg(m_deviceInfo.id).arg(QDateTime::currentMSecsSinceEpoch());
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", connectionName);
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("Client");
db.setUserName("root");
db.setPassword("hzk200407140238");
QSqlDatabase db = DatabaseHelper::createConnection(connectionName);
if (!db.open()) {
qWarning() << "Failed to connect to database for device status update:" << db.lastError().text();

@ -8,6 +8,7 @@
#include "ui/components/DeviceListPanel.h"
#include "utils/SystemLogger.h"
#include "core/database/DatabaseHelper.h"
// Qt GUI头文件
#include <QDebug>
@ -474,12 +475,7 @@ QList<DeviceInfo> DeviceListPanel::loadDevicesFromDatabase()
qDebug() << "Attempting to connect to unified devices database...";
// 创建数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "DeviceListPanel_Connection");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("Client");
db.setUserName("root");
db.setPassword("hzk200407140238");
QSqlDatabase db = DatabaseHelper::createTempConnection("DeviceListPanel_Connection");
if (db.open()) {
qDebug() << "Successfully connected to Client database";
@ -554,12 +550,7 @@ bool DeviceListPanel::deleteDeviceFromDatabase(const QString &deviceId)
qDebug() << "Attempting to delete device from database:" << deviceId;
// 创建数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "DeviceListPanel_Delete_Connection");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("Client");
db.setUserName("root");
db.setPassword("hzk200407140238");
QSqlDatabase db = DatabaseHelper::createTempConnection("DeviceListPanel_Delete_Connection");
bool success = false;

@ -9,6 +9,7 @@
#include "ui/dialogs/DeviceDialog.h"
#include "build/ui_DeviceDialog.h"
#include "utils/SystemLogger.h"
#include "core/database/DatabaseHelper.h"
// Qt headers
#include <QMessageBox>
@ -156,12 +157,7 @@ void DeviceDialog::setDeviceInfo(const QString &deviceId, const QString &name, c
void DeviceDialog::loadOperationLogs(const QString &deviceId)
{
// 连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "DeviceDialog_LogQuery");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("Client");
db.setUserName("root");
db.setPassword("hzk200407140238");
QSqlDatabase db = DatabaseHelper::createTempConnection("DeviceDialog_LogQuery");
if (!db.open()) {
qWarning() << "Failed to connect to database for operation logs:" << db.lastError().text();
@ -228,12 +224,7 @@ void DeviceDialog::refreshDeviceInfo()
}
// 连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "DeviceDialog_Refresh");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("Client");
db.setUserName("root");
db.setPassword("hzk200407140238");
QSqlDatabase db = DatabaseHelper::createTempConnection("DeviceDialog_Refresh");
if (!db.open()) {
qWarning() << "Failed to connect to database for refresh:" << db.lastError().text();
@ -573,12 +564,7 @@ void DeviceDialog::initializeOperationLogTable()
void DeviceDialog::logOperation(const QString &operation, const QString &operatorName)
{
// 记录操作到数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "DeviceDialog_LogOperation");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("Client");
db.setUserName("root");
db.setPassword("hzk200407140238");
QSqlDatabase db = DatabaseHelper::createTempConnection("DeviceDialog_LogOperation");
if (!db.open()) {
qWarning() << "Failed to connect to database for logging operation:" << db.lastError().text();

@ -10,6 +10,7 @@
#include "build/ui_MainWindow.h"
#include "ui/dialogs/DeviceDialog.h"
#include "utils/SystemLogger.h"
#include "core/database/DatabaseHelper.h"
// Qt GUI头文件
#include <QWebEngineView>
@ -545,12 +546,7 @@ void MainWindow::onAddRobotClicked()
double defaultLatitude = 39.9; // 默认纬度
// 尝试从数据库获取配置的地图中心位置
QSqlDatabase configDb = QSqlDatabase::addDatabase("QMYSQL", "TempConnection_Config_Robot");
configDb.setHostName("localhost");
configDb.setPort(3306);
configDb.setDatabaseName("Client");
configDb.setUserName("root");
configDb.setPassword("hzk200407140238");
QSqlDatabase configDb = DatabaseHelper::createTempConnection("TempConnection_Config_Robot");
if (configDb.open()) {
QSqlQuery configQuery(configDb);
@ -582,12 +578,7 @@ void MainWindow::onAddRobotClicked()
latitudeEdit->setToolTip(QString("默认地图中心纬度: %1°N").arg(defaultLatitude));
// 自动生成设备ID
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "TempConnection_DOG_ID_Add");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("Client");
db.setUserName("root");
db.setPassword("hzk200407140238");
QSqlDatabase db = DatabaseHelper::createTempConnection("TempConnection_DOG_ID_Add");
QString suggestedId = "DOG001";
if (db.open()) {
@ -736,12 +727,7 @@ void MainWindow::onAddUAVClicked()
double defaultLatitude = 39.9; // 默认纬度
// 尝试从数据库获取配置的地图中心位置
QSqlDatabase configDb = QSqlDatabase::addDatabase("QMYSQL", "TempConnection_Config");
configDb.setHostName("localhost");
configDb.setPort(3306);
configDb.setDatabaseName("Client");
configDb.setUserName("root");
configDb.setPassword("hzk200407140238");
QSqlDatabase configDb = DatabaseHelper::createTempConnection("TempConnection_Config");
if (configDb.open()) {
QSqlQuery configQuery(configDb);
@ -773,12 +759,7 @@ void MainWindow::onAddUAVClicked()
latitudeEdit->setToolTip(QString("默认地图中心纬度: %1°N").arg(defaultLatitude));
// 自动生成设备ID
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "TempConnection_UAV_ID");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("Client");
db.setUserName("root");
db.setPassword("hzk200407140238");
QSqlDatabase db = DatabaseHelper::createTempConnection("TempConnection_UAV_ID");
QString suggestedId = "UAV001";
if (db.open()) {
@ -1029,12 +1010,7 @@ void MainWindow::onDeviceDetailsRequested(const QString &deviceId)
qDebug() << "Device details requested for:" << deviceId;
// 连接数据库获取设备详细信息
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "MainWindow_DeviceDetails");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("Client");
db.setUserName("root");
db.setPassword("hzk200407140238");
QSqlDatabase db = DatabaseHelper::createTempConnection("MainWindow_DeviceDetails");
if (!db.open()) {
qWarning() << "Failed to connect to database for device details:" << db.lastError().text();
@ -1203,12 +1179,7 @@ void MainWindow::initializeDeviceMarkersOnMap()
bool MainWindow::addDeviceToDatabase(const QString &deviceId, const QString &name, const QString &type, const QString &ip, int port, int state, double longitude, double latitude)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "MainWindow_AddDevice_Connection");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("Client");
db.setUserName("root");
db.setPassword("hzk200407140238");
QSqlDatabase db = DatabaseHelper::createTempConnection("MainWindow_AddDevice_Connection");
if (!db.open()) {
qWarning() << "Failed to connect to database for adding device:" << db.lastError().text();

Binary file not shown.
Loading…
Cancel
Save