QT操作数据库

时间记录:2024/1/20

一、QT+mysql配置

1.1 环境介绍
Qt Creator5.12.7+Mysql5.5.28+Windows10操作系统
1.2 编译mysql-driver
(1)查看可用的sql-driver

qDebug() << QSqlDatabase::drivers();

输出:(“QSQLITE”, “QODBC”, “QODBC3”, “QPSQL”, “QPSQL7”),默认QT5.12.7 没有mysql的驱动
(2)编译libmysql.dlllibmysql.lib文件
    1.找到QT源码src目录的qtbase/src/plugins/sqldrivers/mysql目录,打开mysql.pro文件,在QMAKE_USE += mysql前边加“#”号注释此行,然后添加以下代码,mysql的安装路径要做对应的替换

LIBS += -LD:/apps/MYSQL/lib -llibmysql

INCLUDEPATH += D:/apps/MYSQL/include

DEPENDPATH += D:/apps/MYSQL/include

    2.打开qsqldriverbase.pri文件,将include(/qtsqldrivers-config.pri)这一行注释掉
    3.编译pro文件生成qsqlmysql.dllsqlmysqld.dll文件,双击pro文件打开项目,选择套件编译即可
    4.将生成的qsqlmysql.dllqsqlmysqld.dll文件复制到QT相应套件的“\plugins\sqldrivers”路径下
    5.编写代码,将mysql安装目录下的libmysql.dll文件复制到项目的应用程序同级目录下或者复制到编译套件的bin目录下,发布应用程序时同样需要复制此文件到应用程序同级目录下

二、QT命令行编译项目

(1)调出套件命令行,切换到项目pro文件的目录,输入命令“qmake -project”生成pro文件
(2)打开pro文件,添加使用到的QT模块,然后命令行输入命令“qmake xxx.pro -spec win32-g++ “CONFIG+=debug” “CONFIG+=qml_debug””或者“qmake xxx.pro”生成makefile文件
(3)使用命令“mingw32-make -f Makefile.Debug”来执行make命令生成可执行程序

三、QT连接数据库

(1)在pro文件中添加sql模块
(2)创建QDatabase数据库配置对象
    2.1 使用静态方法addDatabase配置数据库驱动“QMYSQL”或“QSQLITE
    2.2 使用方法setHostName配置mysql数据库的服务器IP地址
    2.3 使用方法setPort配置mysql数据库的服务器端口号
    2.4 使用方法setDatabaseName配置要连接的数据库名称
    2.5 使用方法setUserName配置登录mysql服务器的用户名
    2.6 使用方法setPassword配置登录mysql服务器的密码
(3)使用QDatabase类的方法open打开数据库
(4)编写sql语句,然后使用QSqlQuery类的exec方法执行固定语句
(5)获取查询结果使用QSqlQuery类的next方法判断是否还有下一行数据,判断之后会自动下移一行,value方法获取行内的数据,传入数字则获取到此行某一列数据,传入字符串则根据获取到此行对应键名的值
(6)批处理操作,根据可变参进行数据处理
    6.1 使用QSqlQuery类的prepare方法编写sql语句,参数使用?表示,然后使用addBindValue方法为?绑定值,最后使用execBatch方法执行sql语句
    6.2 使用QSqlQuery类的prepare函数编写sql语句,sql语句中的值使用“:别名”代替,然后使用bindValue函数为别名绑定值,绑定完毕值以后便可以使用execBatch函数进行批处理操作
(7)使用QDatabase类的close方法关闭数据库连接

四、简单的一些sql语句

(1)创建表

create table if not exists 表名(键名1 键数据类型1,键名2 键数据类型2...);
示例:
create table if not exists user(id int primary key auto_increment,username varchar(20),password varchar(20));  

(2)添加数据

insert into 表名(键名1...) values(1...);

(3)删除数据

delete from 表名 where 删除条件;
示例:
delete from user where id=2;

(4)修改数据

update 表名 set 键=,=值 where 修改条件
示例:
update user set username='admin',password='123456' where id = 1;

(5)查询数据

select 键名 from 表名;
示例1:查询全部数据
select * from user;
示例2:查询指定键的数据
select username as u,password as p from user;

你可能感兴趣的:(QT,qt,数据库,开发语言,c++)