#include "mysql.h"#include"ui_mysql.h"#include#include#include#include#includeMySql::MySql(QWidget*parent) :

QWidget(parent),

ui(newUi::MySql)

{

ui->setupUi(this);//添加一个mysql数据库

qDebug() <<:drivers>

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//设置数据库

db.setHostName("127.0.0.1"); //主机IP

db.setUserName("root"); //登录mysql数据库的用户名

db.setPassword("123456"); //登录密码

db.setDatabaseName("books"); //连接的数据库名//打开数据库

if(db.open() == false)

{

QMessageBox::warning(this, "warning", db.lastError().text());

}//增删查改 ...//添加一条记录

QSqlQuery query;

QString sql= "insert into app_authors(name,age) values('vincent',100)";

query.exec(sql);//预处理//? -- 通配符, odbc风格的通配符

query.prepare("insert into app_authors(name,age) values(?,?)");//添加绑定数据

QVariantList nameList;

nameList<< "aa" << "bb" << "cc";

query.addBindValue(nameList);

QVariantList ageList;

ageList<< 11 << 54 << 88;

query.addBindValue(ageList);//执行批处理

query.execBatch();//oracle 风格的通配符//定义方式: :+自定义的名字

query.prepare("insert into app_authors(name, age) values(:name, :age)");

QVariantList ageList;

ageList<< 111 << 52 << 82;

query.bindValue(":age",ageList);

QVariantList nameList;

nameList<< "hh" << "ff" << "gg";

query.bindValue(":name",nameList);

query.execBatch();//数据查询

query.exec("select name, age from app_authors");while(query.next()) { //遍历每一条记录

qDebug() << query.value(0).toString().toUtf8().data() // //0 -- 第一个字段的索引

<< query.value(1).toInt()<< query.value("name").toString().toUtf8().data();

}//1. 实例化model

model = new QSqlTableModel(this);//2. 将模型设置到视图中

ui->tableView->setModel(model);//3. 给model设置数据库表 -- 前提条件: 数据库已经打开了

model->setTable("app_authors");//4. 查询表

model->select();//5. 设置表头

model->setHeaderData(0, Qt::Horizontal, "编号");

model->setHeaderData(1,Qt::Horizontal,"姓名");

model->setHeaderData(2,Qt::Horizontal,"年龄");

model->setEditStrategy(QSqlTableModel::OnManualSubmit);

}

MySql::~MySql()

{deleteui;

}voidMySql::on_submit_clicked()

{

model->submitAll();

}voidMySql::on_revert_clicked()

{

model->revertAll(); //撤销步骤

model->submitAll(); //提交步骤 -- 更新数据模型 model->select();

}voidMySql::on_search_clicked()

{

QString name= ui->lineEdit->text();//slect * from aa where name = 'xiaoming';//设置过滤条件

QString sql = QString("name='%1'").arg(name);

model->setFilter(sql);//重新查询

model->select();

}

qsql 关联_(十八)链接数据库,QSqlTableModel相关推荐

  1. qsql 关联_第26篇 数据库(六)SQL关系表格模型QSqlRelationalTableModel

    第26篇 数据库(六)SQL关系表格模型QSqlRelationalTableModel 导语 QSqlRelationalTableModel继承自QSqlTableModel,并且对其进行了扩展, ...

  2. MySQL二十八规范数据库设计

    MySQL二十八:规范数据库设计 糟糕的数据库设计: ●数据冗余,浪费空间 ●数据库插入和删除都会麻烦.异常[ 屏蔽使用物理外键] ●程序的性能差 良好的数据库设计: ●节省内存空间 ●保证数据库的完 ...

  3. 微信小程序开发之十八 —— 云数据库入门

    文章目录 学习前后 云数据库的基础知识 数据库权限限制 简易权限配置 安全规则 数据库查询 查询指令command 条件查询法一:Collection.where 条件查询法二:Collection. ...

  4. xadmin与mysql数据库_十八、Django3.0学习之引入xadmin

    一.将xadmin导入Django工程中 1.1 xadmin下载地址: https://github.com/sshwsfc/xadmin/tree/django2 或者: 链接:https://p ...

  5. jmeter连接mysql数据库驱动_十八、JMeter实战-JDBC连接MySQL数据库

    前言 连接数据库进行测试在工作中会比较常用,首先可以读取数据库的数据进行参数化.关联等,批量添加测试数据以及清理数据,还可以直接对SQL语句进行压测. 一.基本介绍 1. 首先第一步要导入mysql驱 ...

  6. qsql 关联_怎样在Qt下连接读写sqlite数据库

    我们接着来写查询按钮的代码,输入以下代码: QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE","rconntos ...

  7. sql server 链接服务器 改访问接口_跨服务器链接数据库?其实很简单!(上)

    今天给大家来分享一下跨服务器操作数据库,还是以SQL Server的管理工具(SSMS)为平台进行操作. 什么是跨服务器操作? 跨服务器操作就是可以在本地连接到远程服务器上的数据库,可以在对方的数据库 ...

  8. Django笔记二十八之数据库查询优化汇总

    这一篇笔记将从以下几个方面来介绍 Django 在查询过程中的一些优化操作,有一些是介绍如何获取 Django 查询转化的 sql 语句,有一些是理解 QuerySet 是如何获取数据的. 以下是本篇 ...

  9. 大数据WEB阶段(十八)数据库事务

    数据库事务 一.概述 事务的概念 事务是指逻辑上的一组操作 , 组成这组操作的各个单元 , 要么全部成功 , 要么全部失败 . 如:银行转账.. 转账核心操作其实就是两条sql ,两条都执行成功才算成 ...

最新文章

  1. 1.无重复字符的最长子串
  2. 可拖动的进度条_TIM iOS版重大更新:支持语音进度条拖动和暂停
  3. 24.Creating Customer Groups
  4. 无共享模式的数据架构
  5. How to create a DXL attribute using a DXL script
  6. JZOJ6734. 【2020.06.18省选模拟】航行
  7. 公开说说别人看不到_空间设置了权限说说所有人可见
  8. 软考中级嵌入式系统设计师备考攻略
  9. Using insecure protocols with repositories(已解决)
  10. Take-Two同意斥资127亿美元收购Zynga,或成史上最大游戏并购交易
  11. 企业邮箱邮件怎么撤回,邮件撤回怎么用?
  12. html实训QQ音乐官网首页制作
  13. 直角三角形面积Java_用java编写输出直角三角型、倒直角三角形
  14. A40I构建编译应用程序的SDK环境
  15. 今天给大家分享用scratch制作最难通关管道小游戏!
  16. Unity(游戏)中五种数据存储的方法
  17. Makefile文件
  18. 【目标跟踪】|单目标跟踪指标
  19. 服务器cpu性能如何测试,CPU性能测试(1)_服务器评测与技术-中关村在线
  20. 福昕阅读器(Foxit福昕阅读器(Foxit Reader) 3.0 Build 1506 注册方法

热门文章

  1. 矩形内接任意多边形抠图(可以羽化边缘)
  2. Git tag 打标签
  3. python相似图片聚类分类
  4. OpenCV Mat类详解
  5. Linux内核ipsec密码库,关于2.6.18 ipsec内核支持(NETKEY)的问题
  6. java开源库生成折线图_Android HelloChart开源库图表之折线图的实例代码
  7. java怎么读取word某一页内容_Word页码设置的3点技巧,提高排版效率,减少不必要烦恼...
  8. admui3字体无法删除_被微信好友删除、拉黑还不知?这3个方法可以自查,看完涨知识了...
  9. html div中怎么引入另一个html文件
  10. 基于wayland的linux桌面,揭开Wayland的面纱(二):Wayland应运而生