Sqlite   发布时间:2022-05-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Qt操作SQLite数据库——创建、打开、关闭、增加、删除和修改操作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Qtsql模块提供了与平台以及数据库种类无关的访问sql数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。 QsqlDatabase对象象征了数据库的关联。Qt使用驱动程序与各种数据库的应用编程接口进行通信。Qt的桌面版(Desktop Edition)包括如下一些驱动程序:
驱动程序 数据库
QDB2 IBM DB2 7.1版以及更新的版本
QIBASE Borland InterBase
QMysqL @H_952_23@mysqL
QOCI 甲骨文公司(Oracle Call Interface)
QODBC ODBC(包括微软公司的QSL服务)
QPsql POSTGResql的7.3版以及更高版本
QsqlitE QSlite第3版
QsqlitE2 QSlite第2版
QTDS Qybase自适应服务器
由于授权的许可限制,Qt的开源版本无法提供所有的驱动程序,当配置Qt时,即可以选择Qt本身包含的sql驱动程序,也可以以查件的形式建立驱动程序,公共领域中不断发展的sqlite数据库将向Qt提供支持。
下面讨论关于Qt进行sqlite的基本操作。

代码如下:
//添加数据库驱动、设置数据库名称、数据库登录用户名、密码
QsqlDatabase database = QsqlDatabase::addDatabase("QsqlitE"); 
database.setDatabasename("database.db");
database.setUsername("root");  
database.setpassword("123456");
sqlite 数据库的打开、增、删、改和查询:
if(!database.open())
{  
qDeBUG()<<database.lastError();
qFatal("Failed to connect.") ;
}
else
{
//Qsqlquery类提供执行和操作的sql语句的方法。
//可以用来执行DML(数据操作语言)语句,如SELECT、INSERT、updatE、deletE, 
//以及DDL(数据定义语言)语句,例如create table。
//也可以用来执行那些不是标准的sql的数据库特定的命令。
Qsqlquery sql_query; 

QString create_sql = "create table student (ID int priMary key,name varchar(30),agE int)";
QString SELEct_max_sql = "SELEct max(ID) from student";
QString insert_sql = "insert into student values (?,?,?)";
QString update_sql = "update student set name = :name where ID = :ID";
QString SELEct_sql = "SELEct ID,name from student";
QString SELEct_all_sql = "SELEct * from student";
QString delete_sql = "delete from student where ID = ?";
QString clear_sql = "delete from student";

sql_query.prepare(create_sql);
if(!sql_query.exec())
{
qDeBUG()<<sql_query.lastError();
}
else
{
qDeBUG()<<"table created!";
}

//查询最大ID
int max_ID = 0;
sql_query.prepare(SELEct_max_sql);
if(!sql_query.exec())
{
qDeBUG()<<sql_query.lastError();
}
else
{
while(sql_query.next())
{
max_ID = sql_query.value(0).toInt();
qDeBUG()<<QString("max ID:%1").arg(max_ID);
}
}
//插入数据
sql_query.prepare(insert_sql);
sql_query.addBindValue(max_ID+1);
sql_query.addBindValue("name");
sql_query.addBindValue(25);
if(!sql_query.exec())
{
qDeBUG()<<sql_query.lastError();
}
else
{
qDeBUG()<<"inserted!";
}

//更新数据
sql_query.prepare(update_sql);
sql_query.bindValue(":name","Qt");
sql_query.bindValue(":ID",1);
if(!sql_query.exec())
{
qDeBUG()<<sql_query.lastError();
}
else
{
qDeBUG()<<"updated!";
}

//查询部分数据
if(!sql_query.exec(SELEct_sql))
{
qDeBUG()<<sql_query.lastError();
}
else
{
while(sql_query.next())
{
int id = sql_query.value("ID").toInt();
QString name = sql_query.value("name").toString();

qDeBUG()<<QString("ID:%1    name:%2").arg(ID).arg(Name);
}
}

//查询所有数据
sql_query.prepare(SELEct_all_sql);
if(!sql_query.exec())
{
qDeBUG()<<sql_query.lastError();
}
else
{
while(sql_query.next())
{
int id = sql_query.value(0).toInt();
QString name = sql_query.value(1).toString();
int age = sql_query.value(2).toInt();

qDeBUG()<<QString("ID:%1    name:%2    age:%3").arg(ID).arg(Name).arg(agE);
}
}

//删除数据
sql_query.prepare(delete_sql);
sql_query.addBindValue(max_ID);
if(!sql_query.exec())
{
qDeBUG()<<sql_query.lastError();
}
else
{
qDeBUG()<<"deleted!";
}

//清空表
sql_query.prepare(clear_sql);
if(!sql_query.exec())
{
qDeBUG()<<sql_query.lastError();
}
else
{
qDeBUG()<<"cleared";
}
}

//关闭数据库
database.close();

//删除数据库
Qfile::remove("database.db");
可以通过一些工具对sqlite进行管理,如下:


sqlite的管理
管理工具挺多的,这里简单介绍几款:
  • sqlite Manager:开放源代码的sqlite管理工具,用来管理本地电脑上的sqlite数据库,可以独立运行(以XulRunner方式),也可以作为firefox、Thunderbird、Seamonkey、Songbird、Komodo、Gecko等的插件。
  • sqlite administrator:一个用来管理sqlite数据库文件的图形化工具,可进行创建、设计和管理操作。提供代码编辑器具有自动完成和语法着色,支持中文,适合初学者。
  • sqlite Database browser:一个sqlite数据库的轻量级GUI客户端,基于Qt库开发,界面清洁,操作简单,主要是为非技术用户创建、修改和编辑sqlite数据库的工具,使用向导方式实现。

更多关于sqlite的介绍与使用,请参

大佬总结

以上是大佬教程为你收集整理的Qt操作SQLite数据库——创建、打开、关闭、增加、删除和修改操作全部内容,希望文章能够帮你解决Qt操作SQLite数据库——创建、打开、关闭、增加、删除和修改操作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: