目录
一、MySQL
widget.cpp构造函数
1、打开数据库
//连接数据库
db = QSqlDatabase::addDatabase("QMYSQL"); //加载MySQL数据库驱动
db.setDatabaseName("mydatabase");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("root");
if (db.open())
{
QMessageBox::information(this, "连接提示", "连接成功");
}
else
{
QMessageBox::warning(this, "连接提示", "连接失败");
}
2、插入数据
QString id = ui->idLineEdit->text();
QString name = ui->nameLineEdit->text();
QString birth = ui->birLineEdit->text();
QString sql = QString("insert into student values (%1, '%2', '%3');").arg(id).arg(name).arg(birth);
QSqlQuery query;
if (query.exec(sql))
{
QMessageBox::information(this, "插入提示", "插入成功");
}
else
{
QMessageBox::information(this, "插入提示", "插入失败");
}
3、查询数据
QSqlQuery query;
query.exec("select * from student;");
while (query.next())
{
qDebug() << query.value(0);
qDebug() << query.value(1);
qDebug() << query.value(2);
}
若没有成功,则将mysql安装的libmysql.dll(路径MySQL->MySQL Server 5.7—>lib)复制到QT(QT5.8.0->5.8->mingw53_32->bin)的安装目录
二、QTableView
1、使用mysql
(1)登录:mysql -u root -p;
(2)创建数据库:create user "test"@"%" identified by "test";
(3)授权:grant select,insert,create on *.* to "test"@"%";
(4)退出数据库:exit
(5)mysql -u test -p;
(6)创建数据表:create database mydatabase
(7)使用数据表:use mydatabase
(8)create table student(
id integer unsigned primary key,
name varchar(16) not null,
birth date
)charset utf8;
(9)插入数据:insert into student values(1,"tom",1999-9-9)
修改配置使得任意一台电脑都可以登录
(10)vim /etc/mysql/mysql.conf.d/mysqld
vim /etc/mysql/mysql.conf.d/mysqld.cnf
将当中的bind-address = 127.0.0.1(只允许本机登录)
改为bind-address = 0.0.0.0
(11)重启mysql:service mysql restart
2、虚拟机的主机地址:47.101.128.140
3、工程中的设置
(1)pro中
QT += core gui sql
(2) widget.h
#include <QSqlDatabase>
#include <QSqlTableModel>
(3) widget.cpp
构造函数中初始化
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("47.101.128.140");
db.setDatabaseName("mydatabase");
db.setUserName("test1");
db.setPassword("test1");
if (db.open())
{
QMessageBox::information(this, "连接提示", "连接成功");
m = new QSqlTableModel;//创建有一个模型对象
m->setTable("student");//操作的是student这张表
ui->tableView->setModel(m);//将m与tableView关联起来
}
else
{
QMessageBox::warning(this, "连接提示", "连接失败");
}
查询
void Widget::on_pushButton_clicked()
{
m->select();
}