前沿
QT中,已经内置了一个专门为数据库操作的库,并且QSqlQuery提供了执行SQL语句并返回结果。并提供了抽象层的QSqlTableModel和QSqlRelationalTableModel。
层次 |
描述 |
驱动层 |
数据库与SQL接口底层桥接,如QSqlDriver、QSqlDriverCreator、QSqlDriverCreatorBase、QSqlDriverPlugin、QSqlResult |
SQL接口层 |
QSqlDatabase类提供了数据库访问类、数据库连接操作,QSqlQuery类提供了与数据库的交互操作,还有QSqlError、QSqlField、QSqlTableModel、QSqlRecord |
用户接口层 |
提供从数据库数据到用于数据表示的窗体映射,包括QSqlQueryModel、QSqlTableModel、QSqlRelationalTabl |
SQLite
基于C语言,已经广泛应用各行业。可以直接读写硬盘数据,也可存在内存中,无须服务器进程或引擎。开源,代码量少,注释多。占用内存极少。支持视图、触发器和事务,支持嵌套SQL。提供虚拟机处理SQL语句。不配置、不安装。编程接口易用。
基本使用,插入,更新,删除,查找
pro文件上 QT += sql
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| QSqlDatabase db; if (QSqlDatabase::contains("qt_sql_default_connection")) { db = QSqlDatabase::database("qt_sql_default_connection"); } else { db = QSqlDatabase::addDatabase("QSQLITE"); db.setHostName("localhost"); db.setDatabaseName("database.db"); db.setUserName("root"); db.setPassword("123456"); } if (!db.open()) { qDebug() << "open false:" << db.lastError(); } QSqlQuery sqlQuery; qDebug()<<sqlQuery.exec("drop table girlfriend"); qDebug()<<sqlQuery.exec("create table girlfriend (id int primary key,name varchar(50),money double)");
qDebug()<<sqlQuery.exec("insert into girlfriend values(1,'ming',6.66)"); qDebug()<<sqlQuery.exec("insert into girlfriend values(2,'ning',8.88)"); qDebug()<<sqlQuery.prepare("insert into girlfriend values(?,?,?)"); sqlQuery.bindValue(0,3); sqlQuery.bindValue(1,"ling"); sqlQuery.bindValue(2,9.99); sqlQuery.exec();
sqlQuery.exec(QString("update girlfriend set money=%1 where name = 'ling'").arg(99.99));
sqlQuery.exec("delete from girlfriend where id = 1");
qDebug()<<sqlQuery.exec("select * from girlfriend"); while(sqlQuery.next()){ qDebug()<<sqlQuery.value(0)<<sqlQuery.value(1)<<sqlQuery.value(2); }
|
当前支持数据库
驱动 |
数据库管理系统 |
QDB2 |
IBM DB2及以上 |
QIBASE |
Borland InterBase |
QMYSQL |
MySQL |
QOCI |
Oracle call Interface Driver |
QODBC |
ODBC包括微软SQL Server和其它兼容ODBC |
QPSQL |
PostgreSQL 6和7 |
QSQLITE |
3及以上 |
QSQLITE2 |
2 |
QTDS |
Sybase Adaptive Server |
本文标题:QT数据库之SQLite
文章作者:whppmy
发布时间:2019-03-26
最后更新:2019-03-26
原始链接:http://bugnull.com/QT/qt数据库之sqlite/
版权声明:个人记录,没有获取同意时,禁止转载!!