接上一篇所讲,我们已经安装好MYSQL5.6并且配置好了环境变量,这篇我将介绍如何通过QT使用MYSQL
QT连接MYSQL
- 首先创建项目,在.pro文件中添加代码
QT +=sql
例如:我加在了最后
代码
代码注释够详细了,我就不过多赘述了,有疑问可以在最下方留言哦!
.h文件
#include <QSqlDatabase>
void connectMYSQL();
void createDB();
void initDB();
QSqlDatabase database;
.cpp文件
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connectMYSQL();
createDB();
initDB();
QSqlQuery query(database);
query.exec("select * from Student");
while(query.next())
{
qDebug()<<query.value(0).toString()<<query.value(1).toString()<<query.value(2).toString()
<<query.value(3).toString()<<query.value(4).toString()<<query.value(5).toString();
}
}
//连接数据库
void MainWindow::connectMYSQL()
{
if (QSqlDatabase::contains("testConnect"))//判断testConnect连接是否存在并连接
{
database = QSqlDatabase::database("testConnect");
}
else //未连接则新建数据库连接
{
database=QSqlDatabase::addDatabase("QMYSQL","testConnect");//创建数据库连接,并为其命名testConnect
database.setHostName("127.0.0.1"); //连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost)
database.setPort(3306); //连接数据库端口号,与设置一致
database.setUserName("root"); //数据库用户名,与设置一致
database.setPassword("88888888"); //数据库密码,与设置一致
}
if(!database.open())
{
qDebug()<<"fail to connect mysql:"<<database.lastError().text();
return;
}
}
//创建数据库、数据表
void MainWindow::createDB()
{
QString querystring;
//创建数据库
database = QSqlDatabase::database("testConnect");
querystring = "CREATE DATABASE IF NOT EXISTS student_info";
database.exec(querystring);
if (database.lastError().isValid())
{
qDebug()<<"Create database failed."<<database.lastError();
return;
}
//创建数据表student
database.setDatabaseName("student_info");
if(!database.open())
{
qDebug()<<"database open failed";
return;
}
querystring =
"CREATE TABLE IF NOT EXISTS student_info.Student\
(\
Name varchar(20),\
NO varchar(20) primary key,\
Sex varchar(20),\
Tell varchar(20),\
Address varchar(30), \
Hobbies varchar(30)\
)";
database.exec(querystring);//执行创建数据表语句
if (database.lastError().isValid())
{
qDebug()<<"Student table creat failed:" << database.lastError();
return;
}
//支持中文
database.exec("alter table Student convert to character set utf8");
}
//初始化数据库(添加原始值)
void MainWindow::initDB()
{
QSqlQuery query(database);
query.exec("insert into Student values('张三', '2018010235', '男','12116588966','北京市朝阳区幸福小区12#103','篮球,游泳')");
query.exec("insert into Student values('李四', '2018020156', '男','15665487200','湖南省长沙市岳麓区开心小区9#602','足球')");
query.exec("insert into Student values('灵儿', '2018020202', '女','10202020202','江苏省南京市玄武区爱情公寓2#202','Dota')");
if(!query.exec())
{
qDebug() << "Error: Fail to insert ." << query.lastError();
}
}
运行结果
福利
推荐一款软件Navicat for MySQL,我们可以直接从中查看、编辑数据库哦,具体的安装和使用,我将在下一篇《Navicat for MySQL》中介绍,敬请关注