1、新建类
2、在db_connecton.h文件中添加以下代码
#ifndef DB_CONNECTION_H
#define DB_CONNECTION_H
#include<QMessageBox>
#include<QSqlDatabase>
#include <qdebug.h>
#include <QSqlError>
#include <QSqlQuery>
#include "QSqlDatabase.h"
//创建一个默认的连接,即只有一个连接
static bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); //数据库类型
db.setHostName("localhost"); //主机名
db.setDatabaseName("test"); //数据库名称
db.setUserName("root"); //用户名
db.setPassword("5oMacE9uQP%x"); //密码
if (!db.open())
{
QMessageBox::critical(0, QString::fromLocal8Bit("错误"),
QString::fromLocal8Bit("数据库连接失败"),
QMessageBox::Cancel);
return false;
}
db.open();
return true;
}
#endif // DB_CONNECTION_H
如果报错,就打开Qt project setting
选中sql
然后再运行,就可以了
3、在main中添加
如果没有弹出
在这里插入图片描述
那就是正常连接了
如果弹出连接失败,首先看下自己数据库打开了没;管理员身份运行cmd,输入net start mysql,打开数据库;
如果数据库已经打开,确定一下自己的账号密码有没有问题;
如果还是没问题那可能就是安装的时候没装好
可以看看之前的安装教程:点击
4、基本操作:
(1)查询:
//查询数据库中所有表的名称
QStringList tables = db.tables();
foreach(QString table, tables)
qDebug()<<table;
//ODBC查询数据
QSqlQuery result = db.exec(" select * from users");
while(result.next()){
qDebug()<<"user_id:"<<result.value("user_id").toInt();
qDebug()<<"name:"<<result.value("name").toString();
qDebug()<<"password:"<<result.value("password").toString();
qDebug()<<"score:"<<result.value("score").toInt()<<endl;
(2)插入
//ODBC插入数据
result.clear();
bool result_successed = result.exec("insert into users(name,password,score) values ( 'joe2y','123456',0)");
if(result_successed){
qDebug()<<"插入成功!";
}else {
qDebug()<<"插入失败!";
(3)修改
//ODBC更新数据
result.clear();
bool result_successed2 = result.exec("update users set score=10 where user_id=2");
if(result_successed2){
qDebug()<<"更新成功!"<<endl;
}else{
qDebug()<<"更新失败!"<<endl;
}
可以直接仿照连接的函数,把写数据库代码都封装在db_connection.h中;
比如
在登录按钮的槽函数中添加: