上文Qt实战案例(25)——利用QSQL相关类实现对SQLite数据库的增删改查操作介绍了利用SQLite数据库的基本操作和利用QSQL对数据库进行增删改查的基本操作,本文再次基础上对其进行更加详细的介绍。
目录
一、项目介绍
- 一、项目介绍
- 二、项目基本配置
- 三、UI界面设计
- 四、主程序实现
- 4.1 pro文件
- 4.2 main.cpp文件
- 1.建立数据库
- 2.打开数据库
- 3.关闭数据库
- 4.操作数据库
- 例1:创建表格
- 例2:插入数据
- 例3:修改数据
- 例4:查询数据
- 例5:删除与清空
- 五、效果演示
利用Qt对SQLite数据库完成数据的增、删、改、查等操作。
二、项目基本配置新建一个Qt案例,项目名称为“SQLiteTest”,基类选择“QWidget”,取消创建UI界面复选框的选中状态,完成项目创建。
三、UI界面设计无UI界面
四、主程序实现 4.1 pro文件在SQLiteTest.pro文件中添加如下代码:
QT+=sql
4.2 main.cpp文件
1.建立数据库
检查连接、添加数据库驱动、设置数据库名称、数据库登录用户名、密码:
QSqlDatabase database;
if (QSqlDatabase::contains("qt_sql_default_connection"))
{
database = QSqlDatabase::database("qt_sql_default_connection");
}
else
{
database = QSqlDatabase::addDatabase("QSQLITE");//创建SQLite数据库
db.setHostName ("SQLite-001") ;//设置数据库主机名
database.setDatabaseName("MyDataBase.db");//设置数据库名
database.setUserName("XingYeZhiXia");//设置数据库用户名
database.setPassword("123456");//设置数据库密码
}
- 第一行中,建立了一个QSqlDatabase对象,后续的操作要使用这个对象。
- if语句用来检查指定的连接(connection)是否存在。这里指定的连接名称(connection name)是qt_sql_default_connection,这是Qt默认连接名称。实际使用时,这个名称可以任意取。如果判断此连接已经存在,那么QSqlDatabase::contains()函数返回true。此时,进入第一个分支,QSqlDatabase::database()返回这个连接;如果这个连接不存在,则进入else分支,需要创建连接,并添加数据库。
- 在else分支第一行,addDatabase()的参数QSQLITE是SQLite对应的驱动名,不能改。而且需要注意的是,addDatabase()的第二个参数被省略了,第二个参数的默认参数就是上面提到的Qt默认连接名称qt_sql_default_connection。如果需要使用自定义的连接名称(如果程序需要处理多个数据库文件的话就会这样),则应该加入第二个参数,例如
database = QSqlDatabase::addDatabase("QSQLITE", "my_sql_connection);
这个时候,如果在另一个地方需要判断my_sql_connection连接是否存在,就应该使用if (QSqlDatabase::contains(“my_sql_connection”))
- else分支第二行中,setDatabaseName()的参数是数据库文件名。如果这个数据库不存在,则会在后续操作时自动创建;如果已经存在,则后续的操作会在已有的数据库上进行。
- else分支后面两行,设置用户名和密码。用户名,密码都可以随便取,也可以省略。
使用open()打开数据库,并判断是否成功。注意,在第一步检查连接是否存在时,如果连接存在,则在返回这个连接的时候,会默认将数据库打开。
if (!database.open())
{
qDebug()
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?