QT5连接MySQL实现增删改查

目录
  • 实现代码
  • 运行结果
  • 测试数据

实现代码

#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#include
#include
#include 

const char *kDbType = "QMYSQL";      // 数据库类型
const QString& kHost = "127.0.0.1";  // 数据库的ipd地址
const int kPort = 3306;              // 数据库端口号
const QString& kUsername = "root";   // 数据库账号
const QString& kPassword = "123456"; // 数据库密码
//const QString& dbname = "test";    // 数据库名

class DBSql{

private:
    QSqlDatabase db;    // 数据库操作对象
    QSqlQuery query;
    QSqlError error;    // SQLError对象
    bool flag;          // 判断函数是否执行
    bool DBInit(){
        db = QSqlDatabase::addDatabase(kDbType);
        db.setHostName(kHost);
        db.setPort(kPort);
        db.setUserName(kUsername);
        db.setPassword(kPassword);
        QString sqlname = "数据库连接";
        flag = db.open();
        sqlerror(flag,query,NULL,sqlname);
        return flag;
    }
    void sqlerror(bool flag,QSqlQuery query,QString sql,QString sqlname){
        if(flag){
            qDebug() << sqlname+"成功!" << sql;
        }else{
            error = query.lastError();
            qDebug() << sqlname+"失败!" << sql << error.driverText() << error.databaseText();
        }
    }
public:

    // 构造函数,初始化数据库连接
    DBSql(){
        this->DBInit();
    }
    // 设置数据库名
    void setDatabase(const QString& dbname){
        db.setDatabaseName(dbname);
        db.open();
    }
    // 查询表字段数
    int sqlRecord(const QString& sql){
        QSqlQuery query(sql);
        QSqlRecord record = query.record();
        int const n = record.count();
        qDebug()<<"查询的字段总数:"<< n;
        return n;
    }
    // 查询结果总数
    int sqlTotal(const QString& sql){
        QSqlQuery query(sql);
        return query.size();
    }
    // 根据sql返回查询结果
    QString sqlQueryValue(const QString& sql){
        QSqlQuery query(db);
        flag = query.exec(sql);
        if(flag && query.next()){
            return query.value(0).toString();
        }else{
            sqlerror(false,query,sql,"返回查询结果失败");
            return NULL;
        }
    }
    // 增加记录
    bool sqlInsert(const QString& sql){
        QSqlQuery query(db);
        flag = query.exec(sql);
        sqlerror(flag,query,sql,"增加记录");
        return flag;
    }
    // 删除记录
    bool sqlDelete(const QString& sql){
        QSqlQuery query(db);
        flag = query.exec(sql);
        sqlerror(flag,query,sql,"删除记录");
        return flag;
    }
    // 查询记录
    list* sqlQuery1(const QString& sql){
        db.open();
        QSqlQuery query(db);
        query.exec(sql);
        const int count = query.record().count();
        const int total = query.size();
        cout<<"The number of fileds to query: "<* dot;
        int *in;
        dot = new list;
        int i = 0;
        while(query.next()){
            int j = 0;
            in = new int[4];
            while(jpush_back(in);
        sqlerror(flag,query,sql,"查询记录");
        return dot;
        }
    }

    int(*f(const QString& sql,const int total))[4]{
        db.open();
        QSqlQuery query(db);
        query.exec(sql);
        const int count = query.record().count();
        cout<<"The number of fileds to query: "<* li;
//    li = dbsql.sqlQuery1(sqlquery);
//    qDebug()<size();
//    list::iterator iterator;
//    for(iterator=li->begin();iterator!=li->end();++iterator){
//        cout<<*iterator<

运行结果

测试数据

/*
 Navicat Premium Data Transfer
 Source Server         : localhost_3306
 Source Server Type    : MySQL
 Source Server Version : 50556
 Source Host           : localhost:3306
 Source Schema         : test
 Target Server Type    : MySQL
 Target Server Version : 50556
 File Encoding         : 65001
 Date: 23/03/2020 12:09:27
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for xy
-- ----------------------------
DROP TABLE IF EXISTS `xy`;
CREATE TABLE `xy`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `x1` int(255) NULL DEFAULT NULL,
  `y1` int(255) NULL DEFAULT NULL,
  `x2` int(255) NULL DEFAULT NULL,
  `y2` int(255) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of xy
-- ----------------------------
INSERT INTO `xy` VALUES (1, 1, 12, 3, 4);
INSERT INTO `xy` VALUES (2, 5, 6, 7, 8);
INSERT INTO `xy` VALUES (3, 9, 10, 11, 12);
INSERT INTO `xy` VALUES (7, 13, 14, 15, 16);
INSERT INTO `xy` VALUES (8, 17, 18, 19, 20);
INSERT INTO `xy` VALUES (9, 21, 22, 23, 24);

SET FOREIGN_KEY_CHECKS = 1;

到此这篇关于QT5连接MySQL实现增删改查的文章就介绍到这了,更多相关QT5 MySQL增删改查内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • qt首次连接MYSQL驱动的各种问题图文详解

    目录 一.在mySql安装目录的lib目录下,获取两个文件 二.查看QMYSQL驱动 三.解决qt没有QMYSQL驱动问题 3.1 下载64位的MySQL Community Server 3.2  编辑mysql.pro文件 四.测试连接 4.1 输出可用数据库 4.2 连接数据库 参考链接: 总结 一.在mySql安装目录的lib目录下,获取两个文件 这里MYSQL的安装地址是:D:\Program Files\MySQL\MySQL Server 5.5\lib 获取这两个文件,将它复制到

  • Windows 环境下使用 Qt 连接 MySQL

    如果应用只需要连接远程数据库,那么本地不需要安装 MySQL,只需要找到 MySQL 提供的 libmysql.dll 和libmysqld.dll 两个动态连接库,把他们加入到 Qt安装目录\5.9\mingw53_32\bin\:默认 Qt 自带已编译好的 qsqlmysql.dll 和 qsqlmysqld.dll (文件路径为 Qt安装目录\5.9\mingw53_32\plugins\sqldrivers\ ):两者如果配套就能成功地让 Qt 连接上 MySQL. (我安装的Qt 版本

  • QT连接Mysql数据库的实现步骤

    目录 前言 方法一.直接通过MySQL的驱动加载数据库 方法二.通过ODBC连接MySQL数据库 ODBC连接代码 总结 前言 QT连接Mysql数据库步骤相对比较麻烦,因此写了篇文章将详细过程呈现给大家,欢迎大家来评论区指导提问. 方法一.直接通过MySQL的驱动加载数据库 示例代码: (1)在.pro文件中添加下列代码: QT +=sql (2)在mainwindow.h文件中添加下列头文件: #include<QSqlDatabase> (3)在main.cpp文件中添加下列代码: QS

  • QT连接MYSQL数据库的详细步骤

    第一步要加入对应的数据库模块(sql)在工程文件(.pro)介绍几个类(也是对应的头文件)  QSqlError提供SQL数据库错误信息的类 QSqlQuery提供了执行和操作SQL语句的方法 QSqlQueryDatabase 处理到数据库的连接 1.数据库的连接 //添加mysql数据库 QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); //连接数据库 db.setHostName("127.0.0.1")

  • QT5连接MySQL实现增删改查

    目录 实现代码 运行结果 测试数据 实现代码 #include #include #include #include #include #include #include #include using namespace std; #include #include #include const char *kDbType = "QMYSQL"; // 数据库类型 const QString& kHost = "127.0.0.1"; // 数据库的ipd地

  • Java连接MySQL数据库增删改查的通用方法(推荐)

    运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类下面写好多方法,要是多个数据库,就要写多个类多个方法,导致代码编写太过于繁琐,所以为了改变这样的繁琐,我将连接数据库的方法进行了一系列的封装,使用户传入一个对象值Object就可以得到想要的. 我在之前写过一篇普通的Java连接MySQL数据库,大家可以看看,以便对比参考之后就知道差距了 数据库--MySQL-->Java篇 接下来我给大家讲讲如何将这个不可复用,又多重复的连接代码,封装起来,非常

  • Python连接Mysql进行增删改查的示例代码

    Python连接Mysql 1.安装对应的库 使用Python连接Mysql数据库需要安装相应的库 以管理员身份运行cmd,输入命令 pip install mysql.connector 安装完成后建立 test.py 写入 import mysql.connector 保存后运行 python test.py 用以测试模块库是否安装完成,如果不报错,说明安装完成 2.进行连接测试 编写connectTest.py文件 文件内容: import mysql.connector connect

  • java操作mysql实现增删改查的方法

    本文实例讲述了java操作mysql实现增删改查的方法.分享给大家供大家参考,具体如下: 首先,需要把MySQL与Java连接的jar(mysql-connector-java-5.1.6-bin.jar)包导入工程. package com.cn.edu; import java.beans.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatemen

  • 详解使用pymysql在python中对mysql的增删改查操作(综合)

    这一次将使用pymysql来进行一次对MySQL的增删改查的全部操作,相当于对前五次的总结: 先查阅数据库: 现在编写源码进行增删改查操作,源码为: #!/usr/bin/python #coding:gbk import pymysql from builtins import int #将MysqlHelper的几个函数写出来 def connDB(): #连接数据库 conn=pymysql.connect(host="localhost",user="root&quo

  • 通过shell脚本对mysql的增删改查及my.cnf的配置

    shell操作mysql 1.获取mysql默认密码 新安装的mysql,密码是默认密码 #!/bin/bash # STRING:获取mysql默认密码的一段字符串 # 例如:A temporary password is generated for root@localhost: xxxxxx # PASSWORD:将获取到的STRING进行截取,获取localhost:右边的默认密码 # shellcheck disable=SC2006 STRING=`grep "temporary p

  • MySQL中增删改查操作与常见陷阱详解

    目录 本文导读 一.MySQL的增删改查 1.insert语句 2.delete语句 3.update语句原理 4.select 二.15种MySQL数据操作语句 1.REPLACE语句 2.CALL语句 3.TABLE语句 4.WITH语句 三.MySQL查询陷阱 总结 本文导读 本文作为MySQL系列第二篇文章,详细讲解了MySQL的增删改查的语句.语义和一些我们经常在开发工作中暴露的问题,MySQL的增删改查又叫数据操作语句,本文有讲些了一些常用的数据操作语句,select语句后续将作为一

  • Go使用Gin+mysql实现增删改查的详细实例

    目录 0.前置知识 1.架构 2.功能模块 3.实现流程 4.代码 5.结果 总结 0.前置知识 Go中的struct. mysql.Gin框架. Web基础. 1.架构 使用mysql作为数据库,Gin作为Web框架. 2.功能模块 1.自定义Person结构体 2.实现对Person的增删改查. 根据id查询或查询所有 插入 修改 删除 3.实现流程 1.建立数据库连接池db,然后连接指定的数据库. 2.编写Web接口(增删改查) 3.通过postman测试或者直接网页请求测试. 4.代码

  • nodejs操作mysql实现增删改查的实例

    首先需要安装mysql模块:npm install mysql --save 然后创建user数据表: 接着使用nodejs对数据库进行增删改查: .[活动]2017 CSDN博客专栏评选 [评论送书]SQL优化.深度学习.数据科学家 CSDN日报20170527 --<人机大战,历史的见证> CSDN 日报 | 4.19-5.19 上榜作者排行出炉 nodejs操作mysql实现增删改查 . 标签: nodejsjavascript实例数据库mysql 2017-05-19 18:39 98

  • Java连接MongoDB进行增删改查的操作

    Java连接MongoDB进行增删改查的操作 1.创建数据库的连接,进行增删改查 (分别为接口和实现类) package com.dao; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mo

随机推荐