QT学习笔记--sql

#include "mysql.h"
#include "ui_mysql.h"
#include<QDebug>
#include<QSqlError>
#include<QSqlQuery>

MySql::MySql(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MySql)
{
    ui->setupUi(this);
    qDebug()<<QSqlDatabase::drivers(); //打印驱动名等    
    //添加数据库mysql,驱动名必须对
    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
    //设置数据库
    db.setHostName("127.0.0.1"); //主机IP
    db.setUserName("root"); //登录mysql数据库的用户名
    db.setPassword("root");//登陆密码
    db.setDatabaseName("...."); //连接的数据库名
    //打开数据库
    bool isok=db.open();
    if(isok==false)
    {
        qDebug()<<db.lastError().text(); //打印出错误信息
    }
    
    //对数据库操作:增删查改
    //添加一条记录
    QSqlQuery query;
    QString sql="insert into People(name,age) values('张三丰',123)";  //向sql中书写sql语句;
    query.exec(sql);        //query执行sql中的sql语句;仅执行一条
    
    
    
    //大批量数据处理 
    //对query进行预处理
    //?--通配符  ODBC风格通配符
    query.prepare("insert into peopel(name,age) values(?,?)");
    //添加绑定数据
    QVariantList namelist;
    namelist<<"aa"<<"bb"<<"cc";
    query.addBindValue(namelist);
    QVariantList agelist;
    agelist<<"12"<<"13"<<"14";
    query.addBindValue(agelist);
    query.execBatch();  //执行批处理(增加三条记录)
    
    
    //Oracle 风格通配符
    //用户可自定义,定义方式:  :+自定义名字
    query.prepare("insert into peopel(name,age) values(:name,:age)");
    //添加绑定数据
    QVariantList namelist2;
    namelist<<"aa"<<"bb"<<"cc";
    query.bindValue(":name",namelist);
    QVariantList agelist2;
    agelist<<"12"<<"13"<<"14";
    query.bindValue(":age",agelist);
    query.execBatch();
    
    
    //数据库查询
    query.exec("select * from peopel");
    while(query.next())  //遍历数据库中每一条记录
    {
        qDebug()<<query.value(0).toInt(); //0--第一个字段的索引
        qDebug()<<query.value("name").toString();
    }
}

MySql::~MySql()
{
    delete ui;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值