[置顶] QT 连接mysql部分

这是安装mysql时的情形:

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

2.打开mysql管理员 

[置顶] QT 连接mysql部分_第1张图片

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 连接mysql部分_第2张图片


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


你可能感兴趣的:(oracle,mysql,ubuntu,insert,qt)