时间记录:2024/1/20
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.dll和libmysql.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.dll和sqlmysqld.dll文件,双击pro文件打开项目,选择套件编译即可
????4.将生成的qsqlmysql.dll和qsqlmysqld.dll文件复制到QT相应套件的“\plugins\sqldrivers”路径下
????5.编写代码,将mysql安装目录下的libmysql.dll文件复制到项目的应用程序同级目录下或者复制到编译套件的bin目录下,发布应用程序时同样需要复制此文件到应用程序同级目录下
(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命令生成可执行程序
(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方法关闭数据库连接
(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;