前言:在当今IT界大多数都会用到数据存储,今天带领大家进入Qt链接mysql的世界。
一、链接mysql数据库
新建一个QT控制台程序(使用到的头文件包含以下几个)
#include
#include
#include
#include
#include
#include
#include 详细代码如下:
bool OpenDataBase()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");//设置数据库IP
db.setDatabaseName("mynote");//数据库名字
db.setUserName("root");//mysql数据库用户名
db.setPassword("******");//mysql数据库密码
bool ok = db.open();
QSqlQuery q;
if(!ok)
{
return false;
qDebug() << "Open error:" << q.lastError() << endl;
exit(1);
}
return true;
}
void CreateTable()
{
QSqlQuery q;
q.exec("create table if not exists LoginTable (UserName varchar(20) primary key, UserPwd varchar(16) not null)");
}
void ShowData()
{
QSqlQuery q;
q.exec("select * from logintable");
while(q.next())
{
QString name = q.value(0).toString();
QString pwd = q.value(1).toString();
qDebug()<
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug()<
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug()<
OpenDataBase();//打开数据库
CreateTable();//创建表
ShowData();//将数据显示到控制台
return a.exec();
}二、运行结果
Qt控制台输出结果:
available drivers:
"QSQLITE"
"QMYSQL3"
"QMYSQL"
"QODBC3"
"QODBC"
"Username:879244@163.com Pwd:1456469"
"Username:98562@qq.com Pwd:1111"
"Username:98563@qq.com Pwd:1111" 三、进入mysql数据库查询结果是否一致
Mysql数据库查询过程及结果:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mynote |
| mysql |
| performance_schema |
| teacher |
| test |
+--------------------+
6 rows in set (0.00 sec)
mysql> use mynote;
Database changed
mysql> select * from logintable;
+----------------+---------+
| name | pwd |
+----------------+---------+
| 879244@163.com | 1456469 |
| 98562@qq.com | 1111 |
| 98563@qq.com | 1111 |
+----------------+---------+
3 rows in set (0.00 sec)
mysql>
四、总结
在链接数据库时,链接的数据库是已经存在的数据库,否则,数据库打开失败。