嵌入式开发工具——嵌入式Qt连接mysql

前言

上一篇(嵌入式开发工具——交叉编译libmysql)已经完成了mysql的C API交叉编译的工作,今天将用它来编译生成Qt连接mysql的动态库。
提前准备的工作:
1、向arm开发板中移植Qt,并且能正常运行
2、交叉编译好libmysql(可参考我的文章,或者网上其他大神的文章)
实现效果:
Exynos4412开发板通过Qt连接阿里云数据

一、编译Qt中自带的mysql源码

1、进入Qt源码中mysql目录下

我移植的是Qt5.6,具体目录如下:

qt-everywhere-opensource-src-5.6.0/qtbase/src/plugins/sqldrivers/mysql

在这里插入图片描述
2、使用qmake进行配置

qmake "INCLUDEPATH+=/home/mysql/include/mysql" "LIBS+=-L/home/mysql/lib/mysql -lmysqlclient_r" mysql.pro

注:
2.1、/home/mysql/include上一篇编译完安装的include文件夹(为了路径短一点,我将其移动到了home目录下)
2.2、/home/mysql/lib这个是编译完安装的lib文件夹
将上述两个路径改为自己的路径即可
在这里插入图片描述
执行完之后会在源码目录下生成Makefile
在这里插入图片描述
Makfile中的内容
在这里插入图片描述
3、执行make
在这里插入图片描述
执行完之后会在../../../../plugins/sqldrivers/生成libqsqlmysql.so
在这里插入图片描述
将ibqsqlmysql.so拷贝到开发板中的文件系统的对应的Qt目录下
在这里插入图片描述

二、程序测试

1、建立一个新的Qt工程,在pro文件的QT项添加 sql
在这里插入图片描述
2、简单写了个程序,连接阿里云数据库,并将一个表格中的内容输出到textEdit上
阿里云数据库
在这里插入图片描述
测试程序
mysql.h文件

#ifndef MYSQL_H
#define MYSQL_H

#include <QMainWindow>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlDriver>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlQueryModel>
#include <QMessageBox>

namespace Ui {
class Mysql;
}

class Mysql : public QMainWindow
{
    Q_OBJECT

public:
    explicit Mysql(QWidget *parent = 0);
    ~Mysql();
    QSqlDatabase db;
    QSqlQuery *query;

private:
    Ui::Mysql *ui;
};

#endif // MYSQL_H

mysql.cpp文件

#include "mysql.h"
#include "ui_mysql.h"

Mysql::Mysql(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Mysql)
{
    ui->setupUi(this);
    db = QSqlDatabase::addDatabase("QMYSQL");//添加数据库 
    db.setHostName("");//主机地址 
    db.setDatabaseName("test");//数据库名字 
    db.setUserName("root");//用户名 
    db.setPassword("");//密码 
    if(!db.open())
    {
        QMessageBox::information(this,tr("worning"),tr("Opendatabase faiLED!"));
    }
    else
    {
        QMessageBox::information(this,tr("worning"),tr("Opendatabase succeed!"));
        query = new QSqlQuery();
        query->exec("Select * from test");//执行 Select * from test
        while(query->next())
        {
        	//将获取到的结果集合插入到textEdit中 
            ui->textEdit->insertPlainText(query->value(0).toString());
        }
        db.close();
    }
}

Mysql::~Mysql()
{
    delete ui;
}

3、qmake、make生成可执行文件

在这里插入图片描述
开发板运行情况
显示连接成功
在这里插入图片描述
显示连接数据
在这里插入图片描述
工程文件:百度云网盘

链接:https://pan.baidu.com/s/11xT6g7-e5Bb9qWujWqbRHA 
提取码:9dcx 

至此,Qt就能够愉快地与数据库进行交互了
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值