一,前言
二,常用数据库软件选型
于是用QT连接mysql,结果显示驱动不可用。我网上搜索了下,也有解决方案,但是比较麻烦。所以我选用sqlite,QT已经集成的,只是sqlite的可视化工具我一开始没找到,后来折腾了下找到了SQlite Expert Personal是个人免费版,已经满足我的编辑及可视化要求了。
那么QT连接数据库,最终我选择轻量级的Sqlite数据库,它不需要连接,直接是个db文件。
三,QT数据库方法API
void Widget::initDB(){
//建立并打开数据库
QSqlDatabase database;
database = QSqlDatabase::addDatabase("QSQLITE");
qDebug()<<qapplication::applicationdirpath();< span=""></qapplication::applicationdirpath();<>
database.setDatabaseName(QApplication::applicationDirPath() + "/CONFIG/" + "testApple.db");
if (!database.open())
{
qDebug() << "Error: Failed to connect database." << database.lastError();
}
else
{
qDebug() << "Succeed to connect database." ;
}
//创建表格
QSqlQuery sql_query;
//先清空一下表,可按需添加此句
sql_query.exec("DROP TABLE student");
//创建表格student
if(!sql_query.exec("create table student(UserId int primary key, UserName text, PassWord text)"))
{
qDebug() << "Error: Fail to create table."<< sql_query.lastError();
}
else
{
qDebug() << "Table created!";
}
// 填充表
if(!sql_query.exec("INSERT INTO student VALUES(1, 'AppleCai', '23')"))
{
qDebug() << "Error: Fail to create table."<< sql_query.lastError();
}
else
{
qDebug() << "add one created!";
}
// 批量填充表
QStringList names;
names<<"小A"<<"小B"<<"小C"<<"小D"<<"小E"<<"小F"<<"小G"<<"小H"<<"小I";
QStringList password;
password<<"11"<<"12"<<"13"<<"21"
<<"22"<<"23"<<"31"<<"32"<<"33";
// 绑定关键字后才能进行操作
sql_query.prepare("INSERT INTO student (UserId, UserName,PassWord) "
"VALUES (:UserId, :UserName, :PassWord)");
qint8 i=0;
foreach (QString name, names) //从names表里获取每个名字
{
sql_query.bindValue(":UserId", i+2); //向绑定值里加入名字
sql_query.bindValue(":UserName", name); //成绩
sql_query.bindValue(":PassWord", password[i] ); //班级
if(!sql_query.exec())
{
qDebug() << "Error: Fail."<< sql_query.lastError();
}
i++;
}
// 读取sqlite
studentInfo tmp;
QVector
infoVect; //数据库缓存 sql_query.exec("SELECT * FROM student WHERE UserId >= 5 AND UserId <= 9;");
while(sql_query.next())
{
tmp.UserId = sql_query.value(0).toInt();
tmp.UserName = sql_query.value(1).toString();
tmp.PassWord = sql_query.value(2).toString();
qDebug()<<tmp.userid<<tmp.username<<tmp.password;< span=""></tmp.userid<<tmp.username<<tmp.password;<>
infoVect.push_back(tmp);
}
qDebug("done");
//更改表中数据
sql_query.prepare("UPDATE student SET PassWord='admin' WHERE UserName='AppleCai'");
if(!sql_query.exec())
{
qDebug() << "Error: Fail."<< sql_query.lastError();
}
//删除表中数据
sql_query.prepare("DELETE FROM student WHERE UserName='小H'");
if(!sql_query.exec())
{
qDebug() << "Error: Fail."<< sql_query.lastError();
}}
四,效果
image.png 五,小结
数据库环境搭建成功,QT访问sqlite数据的基本方法算是掌握了。QT数据库已入门。
作者:applecai
链接:https://www.jianshu.com/p/41d73d9d36ed
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。原文始发于微信公众号(汇编语言):6.QT连接sqlite数据库--Apple的学习笔记
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论