欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

QT中如何驱动链接数据库MYSql

程序员文章站 2022-06-17 07:51:50
...

1.下载安装MYSql数据库,安装时候必须安装INCLUDE和LIB文件夹,并且把这两个文件夹放到C盘根目录C:\ mysql \下; 2.下载QT源码,并在QT源码目录D:\qt-everywhere-opensource-src-5.0.1\qtbase\src\plugins\sqldrivers\ mysql下编译mysql.pro文件; 编译步骤


1.下载安装MYSql数据库,安装时候必须安装INCLUDE和LIB文件夹,并且把这两个文件夹放到C盘根目录C:\mysql\下;

2.下载QT源码,并在QT源码目录D:\qt-everywhere-opensource-src-5.0.1\qtbase\src\plugins\sqldrivers\ mysql 下编译mysql.pro文件;

编译步骤: a从libmysql.lib生成libmysql.a文件
>>C:
>>cd mysql\lib\opt
>>reimp -d libmysql.lib (生成 libmysql.def文件)
>>dlltool -k -d libmysql.def -l libmysql.a (生成 libmysql.a文件)

(把生成的.a文件复制到D:\qt-everywhere-opensource-src-5.0.1\qtbase\src\plugins\sqldrivers\ mysql文件夹下

b: 用记事本打开D:\qt-everywhere-opensource-src-5.0.1\qtbase\src\plugins\sqldrivers\ mysql\mysql.pro文件,在第二行加入: INCLUDEPATH += "C:/mysql/include" LIBS += "C:/mysql/lib/opt/libmysql.lib" 并保存.


c:生成Qt下的mysql驱动:(在QT相应的命令行工具中运行如下命令)
>>cd \
>>cd qt\src\plugins\sqldrivers\mysql
>>QMAKE -o Makefile "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\Llib\opt\libmysql.a" mysql.pro
>>mingw32-make

3:在D:\qt-everywhere-opensource-src-5.0.1\qtbase\plugins\sqldrivers目录下生成驱动QT所需要的文件

  1. qsqlmysql4.dll
  1. libqsqlmysql4.a
  1. qsqlmysqld4.dll
  1. libqsqlmysqld4.a 最后把
    1. qsqlmysqld4.dll
    1. libqsqlmysqld4.a 这两个文件复制到QT工具的安装目录的D:\Qt\5.0.1\mingw47_32\plugins\sqldrivers下,写如下代码测试:

  1. 4:测试代码
  2. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    qDebug() db.setDatabaseName("mytest");
    db.setHostName("localhost");
    db.setUserName("root");
    db.setPassword("19881014");
    db.setPort(3306);
    if(db.open())
    {
    QSqlQuery query;
    //新建student表
    query.exec("create table student (id int primary key, name text,course int)");

    query.prepare("insert into student values (?, ?, ?)");

    QVariantList id;
    id query.addBindValue(id);

    QVariantList name1;
    name1 query.addBindValue(name1);

    QVariantList course;
    course query.addBindValue(course);

    if (!query.execBatch())
    {
    qDebug() };