声明:本文原创于yafeilinux的百度博客, 转载请注明出处。
从今天开始我们学习Qt数据库编程的内容。
先说明:我们以后使用现在最新的基于Qt 4.6.2的Qt Creator 1.3.1 Windows版本,该版本是2010年2月17日发布的。
数据库几乎是每个较大的软件所必须应用的,而在Qt中也使用QtSql模块实现了对数据库的完美支持。我们在Qt Creator的帮助中查找QtSql Module,其内容如下图:
而
现在我们使用的免费的Qt只提供了SQLite和ODBC数据库的驱动(我们可以在Qt
Creator安装目录下的qt\plugins\sqldrivers文件夹下查看),而其他数据库的驱动需要我们自己添加。SQLite是一个小巧的
嵌入式数据库,关于它的介绍你可以自己在网上查找。
QSqlQuery类用来执行SQL语句。(关于SQL语句:在我的教程中只会出现很简单的SQL语句,你没有相关知识也可以看懂,但是如果想进行深入学习,就需要自己学习相关知识了。)
下面我们就先利用这两个类来实现最简单的数据库程序,其他的类我们会在以后的教程中逐个学习到。
1.新建Qt控制台工程。
3.修改main.cpp中的内容如下。
#include
#include
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //添加数据库驱动
db.setDatabaseName(":memory:"); //数据库连接命名
if(!db.open()) //打开数据库
{
return false;
}
QSqlQuery query; //以下执行相关QSL语句
query.exec("create table student(id int primary key,name varchar)");
//新建student表,id设置为主键,还有一个name项
query.exec("insert into student values(1,'xiaogang')");
query.exec("insert into student values(2,'xiaoming')");
query.exec("insert into student values(3,'xiaohong')");
//向表中插入3条记录
query.exec("select id,name from student where id >= 2");
//查找表中id >=2 的记录的id项和name项的值
while(query.next()) //query.next()指向查找到的第一条记录,然后每次后移一条记录
{
int ele0 = query.value(0).toInt(); //query.value(0)是id的值,将其转换为int型
QString ele1 =query.value(1).toString();
qDebug() << ele0 < //输出两个值
}
return a.exec();
}
我们使用了SQLite数据库,连接名为“:memory:”表示这是建立在内存中的数据库,也就是说该数据库只在程序运行期间有效。如果需要保存该数据库文件,我们可以将它更改为实际的文件路径。
4.最终效果如下。
可以看到现在可用的数据库驱动只有三个。
阅读(1030) | 评论(0) | 转发(1) |