QT 连接mysql部分

这是安装mysql时的情形:

1.软件中心:输入mysql 安装mysql服务端和客户端,然后再安装mysql 管理员  

2.打开mysql管理员 


3.点击connect



3.qust@qust-K42JZ:~$ mysql -u root -p  //以root身份登录

Enter password:    //直接enter
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 50
Server version: 5.1.62-0ubuntu0.11.10.1 (Ubuntu)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database test;

mysql> grant all privileges on *.* to qust@localhost identified by '123';//为qust 授权
Query OK, 0 rows affected (0.02 sec)

mysql> quit;
Bye
qust@qust-K42JZ:~$

输入mysql 语句时不要忘记在句末加";"

测试源程序.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QtSql>
#include <iostream>

using namespace std;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);


          QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

          db.setHostName("localhost");

          db.setDatabaseName("test");

          db.setUserName("qust");

          db.setPassword("123");

          if (!db.open())

              qDebug() << "Failed to connect to root mysql admin";
        else

           std::cout<<"succeed!"<<std::endl;
          QSqlQuery query;
             query.exec("create table hello(id bigint not null auto_increment,name varchar(255),age bigint,primary key (id))");
             query.exec("insert into hello(name, age) values('xiaoxi', 18)");
             query.exec("insert into hello(name, age) values('xiaonan', 19)");
             query.exec("insert into hello(name, age) values('xiaobei', 20)");
             query.exec("insert into hello(name, age) values('xiaodong', 21)");

             QSqlQueryModel *model = new QSqlQueryModel;
                 model->setQuery("select * from hello");
                 model->setHeaderData(0, Qt::Horizontal, "id");
                 model->setHeaderData(1, Qt::Horizontal, "name");
                 model->setHeaderData(2, Qt::Horizontal, "age");
               
                 ui->tableView->setWindowTitle("QSqlQueryModel");
                 ui->tableView->setModel(model);


                 db.close();

}

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

运行结果:



在Qt 5.2.1中Qt已经自带MySQL的驱动,但还会发生找不到驱动的提示,这是你需要将MySQL安装目录下的libmysql.dll拷贝到Qt安装目录下的bin目录中即可。


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值