QT中使用MySQL数据库

QT中使用MySQL数据库

1.连结MySQL
首先正确安装MySQL数据库。
然后将libmysql.lib文件放在QT安装路径下的对应编译器的lib文件夹下,如F:\software\QT5.9.5\5.9.5\mingw53_32\lib。将libmysql.dll文件放在QT安装路径对应编译器的bin文件夹下。
最后可正常连结使用数据库。

    ui->setupUi(this);
    QSqlQuery query;
    mutex.lock();//互斥锁,可以不用
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL""aaa");
    //QMYSQL不要变,aaa为连接名,可随意命名,当一个程序有多个地方需要连结数据库时最好使用连接名。
    //如使用则下面的query = QSqlQuery("",db)
    //不使用则:QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");query = QSqlQuery(db)
    db.setHostName("localhost");//主机名
    db.setPort(3306);//端口号,一般为3306,若安装数据库时更改则需要做相应的更改
    db.setUserName("root");//用户名
    db.setPassword("pusong");//密码
    db.setDatabaseName("ps");//数据库名,在连结前需要保证数据库中已经创建了该数据库,创建语句:create database ps;
    bool flag = db.open();//判断是否成功连结标志
    if(flag == true)
    {
        QMessageBox::information(NULL,"消息提示","成功连接数据库");
    }
    else
    {
    //未能成功的错误原因追踪
        QMessageBox::critical(NULL,"消息提示","连接数据库失败");
        QSqlError error;
        error=db.lastError();
        if(error.isValid())//发生错误时isValid()返回true
        {
            switch (error.type())
            {
            case QSqlError::NoError:
                qDebug()<<"无错误";
                break;
            case QSqlError::ConnectionError://连接错语
                qDebug()<<error.text();
                break;
            case QSqlError::StatementError://语句错语
                qDebug()<<error.text();
                break;
            case QSqlError::TransactionError://事务错误
                qDebug()<<error.text();
                break;
            default://未知错误
                qDebug()<<error.text();
                break;
            }
        }
    }
    mutex.unlock();//互斥锁,前面未用则删除
    query = QSqlQuery(db);

2.QSqlQuery

2.1 query.exec("…")
执行sql语句query.exec("…"),主要应用于查询、创建、删除

    QString compren = QString("select * from AK;");//全表查询
    bool fflag = query.exec(compren);
query.exec("create table motorZuyuan(id int primary key,well int,valve int)");
query.exec("DROP table motorZuyuan");

2.2 query.next()
SqlQuery提供了一个访问一条查询结果记录的方法。在调用了exec()方法之后,QSqlQuery的内部指针定位到了第一条记录之前的位置。我们必须调用一次QSqlQuery::next()内部指针就移动到第一条记录上(第一行),然后重复调用next()方法就可以移动到其他记录上,直到该函数返回false为止。所以一般需要建立while循环。

2.3 query.value(…)
SqlQuery::value()函数返回当前记录的行一个字段值。字段的索引号从0开始计数。QSqlQuery::value()返回一个QVariant,这个类型可以保存各种C++和核心的Qt数据类型,比如int, QString和QByteArray等。不同的数据库类型将自动地映射到最近的Qt等价类型。可以使用toInt,toString,toDouble等转换为自己需要的结果。

        while(query.next())
        {
            qDebug()<<"id"<<query.value("id").toDouble();//该行id列的值
            qDebug()<<"frist_one"<<query.value("Ak_num_one").toDouble();//该行AK_num_one列的值
            qDebug()<<"second_two"<<query.value("Ak_num_two").toDouble();
            qDebug()<<"thrid_three"<<query.value("Ak_num_three").toDouble();
        }

2.4 query.prepare("…")
一般用于插入,删除,更新。此函数语句可利用变量操作数据库
bindValue()名称绑定
addBindValue()顺序/位置绑定

    QString insert="insert into motorZuyuan"
                       "(id,well,valve) "
                       "values(:id,:well,:valve);";


    bool insertfalg =query.prepare(insert);//插入操作
    if(insertfalg == false)
    {
        qDebug()<<query.lastError();
    }
    else
    {
        qDebug()<<"insert init!";
    }
    query.bindValue(":id",k);
    query.bindValue(":well",-1);
    query.bindValue(":valve",-1);
    query.exec();
query.prepare("INSERT INTO employee (id, name, salary) "
              "VALUES (?, ?, ?)");
query.addBindValue(1001);
query.addBindValue("Thad Beaumont");
query.addBindValue(65000);
query.exec();

3. 可通过命令行运行框查看操作数据库
当某数据库中有表时可使用:desc 表名; 来查看表中的数据
创建表:create table 表名
创建数据库:create database 库名
删除:drop 表名/库名
在这里插入图片描述

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: QT使用MySQL数据库开发登录窗口的步骤如下: 1. 首先,需要安装并导入MySQL数据库的驱动程序。可以从QT官网下载相应的MySQL驱动程序,并将其导入到项目。 2. 创建一个QT窗口应用程序,并设计登录窗口的用户界面。可以使用QT的界面设计工具进行设计,并添加用户名和密码的输入框、登录按钮等控件。 3. 在窗口类,添加与MySQL数据库交互的代码。首先,需要在代码引入MySQL相关的头文件,并创建一个数据库连接对象。 4. 在登录按钮的槽函数,编写验证用户输入信息和查询数据库的代码。可以使用SQL语句查询数据库的用户名和密码是否与用户输入的一致。 5. 如果验证成功,则登录窗口提示登录成功并跳转到主窗口。如果验证失败,则提示登录失败,并可选择重新输入用户名和密码。 6. 在用户成功登录后,可根据需要进行后续操作,例如显示用户相关的信息或进行其它数据库操作。 需要注意的是,使用MySQL数据库开发登录窗口需要了解QT的信号与槽机制和MySQL数据库的基本操作。在连接数据库时,还需要提供正确的数据库连接信息,例如数据库服务器的地址、用户名、密码等。 ### 回答2: 使用Qt开发登录窗口时,可以使用MySQL数据库来存储和验证用户登录信息。首先,我们需要在Qt项目引入MySQL数据库驱动,例如QMYSQL驱动。 接下来,我们可以创建一个登录窗口的UI界面,包括用户名输入框,密码输入框和登录按钮。当用户点击登录按钮时,我们可以获取输入的用户名和密码。 接下来,我们可以使用Qt数据库模块来连接到MySQL数据库。首先,我们需要创建一个QSqlDatabase对象,并指定数据库驱动和连接的主机、用户名和密码。然后,我们可以调用open()函数来打开数据库连接。 一旦数据库连接成功,我们就可以执行SQL查询语句。我们可以使用prepare()函数为查询语句进行准备,然后通过bindValue()函数将查询语句的参数绑定到输入的用户名和密码上。接下来,我们可以调用exec()函数执行查询,并使用next()函数遍历查询结果。 如果查询结果存在匹配的用户名和密码,那么用户输入的用户名和密码是有效的,登录成功。我们可以弹出一个成功的提示框,并执行相应的操作。否则,我们可以弹出一个错误的提示框,告知用户输入的用户名或密码错误。 最后,不要忘记在程序结束时关闭数据库连接,以释放资源并与数据库断开连接。 总结,使用QtMySQL数据库开发登录窗口,我们可以实现用户输入的用户名和密码的验证,并根据验证结果做出相应的响应。这样,我们可以在Qt应用程序实现一个安全可靠的登录功能。 ### 回答3: 使用Qt开发登录窗口需要先安装Qt以及QtMySQL驱动。安装完成后,首先需要包含Qt的头文件和MySQL驱动的头文件,之后创建一个连接对象,用于连接到MySQL数据库。 在登录窗口的设计,我们需要添加一些控件,例如用户名输入框、密码输入框、登录按钮等。我们可以使用Qt的图形界面设计工具来方便地创建这些控件,并设置它们的属性、信号槽等。 在登录按钮的点击事件,我们可以编写代码来获取用户名和密码输入框的内容,然后使用连接对象与数据库进行交互。可以采用SQL语句来查询数据库,判断用户名和密码是否匹配。 例如,可以使用以下代码来实现登录功能: ``` #include <QtSql> #include <QtWidgets> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建连接对象 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("testDB"); db.setUserName("root"); db.setPassword("password"); if (!db.open()) { qDebug() << "无法连接到数据库!"; return 1; } // 创建登录窗口及相关控件 QDialog loginDialog; QLineEdit usernameEdit; QLineEdit passwordEdit; QPushButton loginButton("登录"); // 添加控件到窗口 QVBoxLayout layout; layout.addWidget(&usernameEdit); layout.addWidget(&passwordEdit); layout.addWidget(&loginButton); loginDialog.setLayout(&layout); QObject::connect(&loginButton, &QPushButton::clicked, [&]() { // 获取用户名和密码输入框的内容 QString username = usernameEdit.text(); QString password = passwordEdit.text(); // 执行SQL查询语句判断用户名和密码是否匹配 QSqlQuery query; query.prepare("SELECT * FROM users WHERE username = :username AND password = :password"); query.bindValue(":username", username); query.bindValue(":password", password); if (query.exec() && query.next()) { qDebug() << "登录成功!"; } else { qDebug() << "用户名或密码错误!"; } }); loginDialog.show(); return app.exec(); } ``` 以上是一个简单的登录窗口使用Qt开发并使用MySQL数据库验证登录的示例代码。当用户点击登录按钮时,程序会根据用户输入的用户名和密码在数据库进行查询,并给出相应的提示信息。需要注意的是,实际开发还需要处理异常情况和对数据库的操作进行更加合理的封装。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值