Qt5.2应用SQLite小结
来源:互联网 发布:ubuntu锐捷认证失败 编辑:程序博客网 时间:2024/06/18 13:44
- 引言
- 使用环境
- 数据库操作
- 初始化数据库
- SQL语句使用
- QSqlTableModel的使用
- 小结
- 参考
引言
SQLite是一款轻型的数据库,占用资源少,且 QT 内置有 SQLite 数据库模块,无须手动编译驱动,十分适合轻量应用中使用。
为了熟悉Qt对SQLite基本操作方法,基于小项目比较容易理解,于是实现了一个简单的通讯录应用,包括增删改查功能。
环境:Qt5.2+QtCreator
使用环境
- pro文件中添加: QT+=sql
- 添加头文件
#include <QSqlDatabase>#include <QSqlQuery>#include <QSqlTableModel>//如需使用QSqlTableModel
数据库操作
1.初始化数据库:
添加数据库驱动、设置数据库名称、打开数据库、创建表
void MainWindow::initDB(){ QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //db.setHostName("localhost");//设置主机名 db.setDatabaseName("AddressBook.db"); //db.setUserName("root"); // 如果是 SQLite 不需要 //db.setPassword("root"); // 如果是 SQLite 不需要 bool ok = db.open(); if(ok) { qDebug()<<"Create DB"; QSqlQuery query; query.exec("create table FriendManager (create_date datetime, " "id INTEGER PRIMARY KEY AUTOINCREMENT,name varchar(20) ,phone varchar(20), " "email varchar(20) , address varchar(20) , description varchar(50))"); } else { qDebug()<<"open failed"<<db.databaseName(); }}
2.SQL语句使用
void MainWindow::ExecAddSql(QVariantMap stuInfo){ if(m_operateType == Add) { QString create_date = stuInfo.value("datetime").toString(); QString phone = stuInfo.value("phone").toString(); QString name = stuInfo.value("name").toString(); QString email = stuInfo.value("email").toString(); QString address = stuInfo.value("address").toString(); QString description = stuInfo.value("desc").toString(); QString sql; sql = QString("insert into FriendManager (create_date,name ,phone ,email ,address , description)" " VALUES ('%1', '%2' , '%3' , '%4' , '%5' , '%6')") .arg(create_date).arg(name).arg(phone).arg(email).arg(address).arg(description); QSqlQuery query; bool ok = query.exec(sql); if(ok) { QStringList rowData; rowData << name <<phone <<email << address << description ; m_pTableWidget->appendRowData(rowData); QMessageBox::information(this ,QStringLiteral("提示") , QStringLiteral("添加成功!")); } else { QMessageBox::information(this ,QStringLiteral("提示") , QStringLiteral("添加失败!")); } }}
其他SQL语句的使用均类似如下模式,详见项目源码
QSqlQuery query;query.exec();
3.QSqlTableModel的使用
QSqlTableModel *model = new QSqlTableModel; model->setTable("person"); model->setEditStrategy(QSqlTableModel::OnManualSubmit); model->select(); ui->tableView->setModel(model); ui->tableView->show();
如此便建立了数据库和QTableview的映射,如下:
其中,上方表格是手动绘制,下方QTableview是数据库的直接映射。
小结
项目生成的数据库文件用sqlite管理工具sqlitestudio查看如下:
简易通讯录完整代码见:简易通讯录
参考
在 QT5 中使用 SQLITE
Qt之操作数据库(SQLite)
阅读全文
0 0
- Qt5.2应用SQLite小结
- sqlite使用小结2
- SQLite使用小结 2
- SQLite小结
- SQLite小结
- sqlite应用2
- QT5+xcode4.6小结
- Qt5.2基于NDK开发android应用
- qt5连接sqlite数据库实例
- qt5连接sqlite数据库实例
- 在 QT5 中使用 SQLITE
- QT5 下操作sqlite数据库
- VS2013+QT5.5配置小结
- SQLite 应用
- QT5 串口应用
- QT5 应用1
- iOS+QT5.2: 使用QT5.2创建跨平台的iOS应用
- SQLite使用小结
- STM32 Tutorial: #1 Buy a board
- Linux 用户ID和组ID
- hadoop单机安装
- java全自动生成krpano全景漫游
- PHP开发环境搭建--Windows
- Qt5.2应用SQLite小结
- jQuery_插件扩展
- 共享单车管理系统
- 正则表达式
- Java中List Set Map 是否有序等总结
- Linux内核中的互斥操作(1)——信号量
- java基础二分法查找
- 常用快捷键以及其对应的英文名称
- C