LINUX 下QT 连接MYSQL

(ps:我的系统UBUNTU10.04,QT版本4.6 里面直接就带了MYSQL驱动,所以不用再去编译驱动,mysql版本5

以下内容为转载)

linux下QT连接mysql数据库

  • 1---------------------------mysql安装配置

之前用C语言连了mysql数据库,因为项目毕竟是用QT包装的,还需要在qt的界面里显示,所以这一次就用QT来连一下mysql。

首先说一下我的电脑是ubuntu10.10;之前安装了QT的linux全部套件(包括qtcreator),也安装了嵌入式qt的那三个编译环境(X11,X86,ARM),但是这一次我只用qtcreatot里的qmake编译(以为之前编译完那三个环境后,我就把编译文件夹全删了)。

首先,安装mysql客户端(mysql-devel),和C语言连接一样,执行命令:

也可以在软件中心下载安装,用emma或者mysql管理器界面管理mysql)

 

sudo apt-get install libmysqlclient-dev

sudo apt-get install libmysqlclient15-dev

 

因为我之前安装过,所以这一步就省略了。

2----------驱动安装

然后,连接mysql数据库肯定要有驱动,这个在qt的源码里就有:进入文件夹:

cd   QTDIR/src/plugins/sqldrivers/mysql                       这就是qt存放mysql驱动源码的目录

目录里应该有main.cpp 和moc_qsql_mysql.cpp两个文件

执行命令:

qmake  -project                                 生成mysql.pro文件,可能这一步会说你没有权限,那么chmod给它权限就可以了

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

 

/usr/include/mysql    mysql所有头文件所在的位置,mysql.h就在此处

/usr/lib/mysql            mysql库的位置

然后,执行命令:

make

sudo make install

此时,在QTDIR/src/plugins/sqldrivers/mysql  这个目录下,就生成了一个文件:libqsqlmysql.so;把它拷贝到QTDIR/plugins/sqldrivers, 目录下面;

Qt的MySQL驱动。

   方法一:直接sudo apt-get install libqt4-sql-mysql ,这是Qt4的mysql驱动,就不用自己费劲编译了,不过可能会额外下载一些东西。

                 将 /usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so拷贝到你的QtSDK sqldrivers目录下,我当时是直接用普通权限安装,目录为:~/QtSDK/Desktop/Qt/473/gcc/plugins/sqldrivers

   方法二:其实你也可以sudo apt-get download libqt4-sql-mysql,把包解压缩,然后把里面的so文件搜出来直接拷贝到那里。

   方法三:新版的QT 会默认自带mysql驱动



3---------------------代码编写



现在开始编程:

随便建工程:(在新建工程时引入qsql类)

加入如下代码:

 

非完成代码,应该加在哪儿,你懂的代码   收藏代码
  1. #include <QtSql>  
  2. #include <QMessageBox>  
  3. #include <QTextStream>  
  4.   
  5. QTextStream out(stdout);  
  6.     QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");  
  7.     db.setHostName("localhost");  
  8.     db.setDatabaseName("test");  
  9.     db.setUserName("root");  
  10.     db.setPassword("xxxxxx");  
  11.     if(!db.open())  
  12.     {  
  13.         QMessageBox::critical(0,QObject::tr("Database Error"),db.lastError().text());  
  14.         return a.exec();  
  15.     }  
  16.     QSqlQuery query;  
  17.     query.exec("SELECT * FROM t_homedata");  
  18.     while(query.next())  
  19.     {  
  20.         QString id = query.value(0).toString();  
  21.         QString type = query.value(1).toString();  
  22.         QString data = query.value(2).toString();  
  23.         out << id << ", " << type << ", " << data <<endl;  
  24.     }  

 

 注意,这段代码,是我加入到工程中的,恩,我就放在main.cpp里;#include <QtSql>这个是必须的;#include <QTextStream>这个是用来进行控制台打印输出的,我的数据库名为test,中间有一个表叫

t_homedata,表里有三个varchar型字段:

其打印结果为:

 

 写道
100010, 23, 32.45
100011, 12, 99
100012, 11, 35.10

 

 注意,再进行工程的编译和运行之前(恩,因为我的电脑里实际有4个qt编译环境,所以还需要再qtcreator的project选项里设置该项目的编译器,我的编译器设置为qt-opensource,即qtcreator自带的,因为我之前所进行的mysql驱动编译也都是再qtcreator的安装目录里进行的),一定别忘了在工程的.pro文件里加上下面一行:

QT  += sql

恩,qt 帮助文档里就是这么说的:

To include the definitions of the module's classes, use the following directive:

 #include <QtSql>

To link against the module, add this line to your qmake .pro file:

 QT += sql
Linux下使用Qt6连接MySQL数据库,需要遵循以下步骤: 1. 安装MySQL数据库和开发库: 首先确保你的Linux系统已经安装MySQL数据库以及MySQL的开发库。这通常可以通过系统包管理器安装,例如在Ubuntu或Debian系统可以使用以下命令: ```bash sudo apt-get install mysql-server libmysqlclient-dev ``` 2. 添加MySQL驱动到你的项目: 在Qt项目,你需要添加MySQL驱动支持。可以在你的`.pro`文件添加以下行来包含MySQL驱动: ```pro INCLUDEPATH += /usr/include/mysql LIBS += -L/usr/lib/x86_64-linux-gnu/ -lmysqlclient ``` 请根据你的系统架构和安装路径调整上述路径。 3. 初始化Qt SQL模块: 在你的主函数,需要初始化Qt的SQL模块: ```cpp #include <QCoreApplication> #include <QSqlDatabase> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); // 初始化SQL模块 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 设置数据库连接的名称、主机名、用户名、密码和数据库名 db.setHostName("localhost"); db.setDatabaseName("your_database_name"); db.setUserName("your_username"); db.setPassword("your_password"); // 尝试打开数据库连接 if (db.open()) { qDebug() << "数据库连接成功!"; // 进行数据库操作... } else { qDebug() << "数据库连接失败:" << db.lastError(); } return app.exec(); } ``` 4. 使用QSqlDatabase进行数据库操作: 一旦连接建立成功,你就可以使用QSqlDatabase和相关的类(如QSqlQuery)来进行查询和更新操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值