Clion创建项目并连接SQLite数据库的完整教程
创作时间:
作者:
@小白创作中心
Clion创建项目并连接SQLite数据库的完整教程
引用
1
来源
1.
https://www.cnblogs.com/DQ-MINE/p/18632350
本文将详细介绍如何在Clion中创建项目并连接SQLite数据库。从创建工程、配置编译环境到编写代码,每个步骤都配有详细的说明和示例,适合初学者学习。
1. 创建工程并运行
(1)新建项目
选择"File" -> "New Project",选择工程文件夹,创建工程。
(2)进入界面
等待项目启动,显示main.cpp主文件。
(3)配置编译环境
默认生成了main.cpp文件,但是我们不能运行。我们缺少编译环境,点击"File" -> "Settings"打开设置,搜索工具链,发现Clion提供的编译环境有几种MinGW,CygWin,Visual studio等。我此处选择的时MinGW,因为我的安装了MinGW,默认选择了MinGW,如果你没有下载的话,后面的位置原先有个download,点击就可以下载了。安装好之后,然后再Environment右侧选择mingw-w64的位置即可。
(4)运行main.cpp文件
配置完成后,即可运行main.cpp文件。
2. 连接SQLite数据库
(1)下载SQLite文件
首先前往SQLite官网下载sqlite3所需文件:SQLite Download Page
(2)解压并添加文件
解压文件,将其中的sqlite3.c和sqlite3.h拷贝到你对应的工程文件夹中。
(3)修改CMakeLists.txt文件
在CMakeLists.txt文件中添加编译选项及连接文件:
cmake_minimum_required(VERSION 3.28)
project(MyDemo)
set(CMAKE_CXX_STANDARD 17)
add_executable(MyDemo main.cpp sqlite3.c)
# 指定包含目录
target_include_directories(MyDemo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
(4)创建SQLite数据库
在代码中创建SQLite数据库。
(5)使用Navicate监视数据库
使用Navicate等工具监视刚才创建的SQLite数据库。
(6)编写代码:数据库连接、表创建、数据表读写
在main.cpp中编写数据库连接、表创建、数据表读写等操作:
#include <iostream>
#include <sqlite3.h>
// 回调函数用于处理查询结果
static int callback(void* NotUsed, int argc, char** argv, char** azColName) {
for (int i = 0; i < argc; i++) {
std::cout << azColName[i] << ": " << (argv[i] ? argv[i] : "NULL") << std::endl;
}
std::cout << std::endl;
return 0;
}
int main() {
sqlite3* DB;
char* errorMessage = 0;
int exit = 0;
// 打开或创建数据库文件
exit = sqlite3_open("D:/WorkOther/MyDemo/test.db", &DB);
// 检查是否成功打开数据库
if (exit) {
std::cerr << "Error open DB: " << sqlite3_errmsg(DB) << std::endl;
return -1;
} else {
std::cout << "Opened Database Successfully!" << std::endl;
}
// SQL语句:创建表
const char* sql_create =
"CREATE TABLE IF NOT EXISTS COMPANY("
"ID INT PRIMARY KEY NOT NULL,"
"NAME TEXT NOT NULL,"
"AGE INT NOT NULL,"
"ADDRESS CHAR(50),"
"SALARY REAL);";
// 执行SQL语句
exit = sqlite3_exec(DB, sql_create, 0, 0, &errorMessage);
if (exit != SQLITE_OK) {
std::cerr << "Error CREATE TABLE: " << errorMessage << std::endl;
sqlite3_free(errorMessage);
} else {
std::cout << "Table created successfully" << std::endl;
}
// 插入数据到表中
const char* sql_insert =
"INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY) "
"VALUES (1, 'Paul', 32, 'California', 20000.00 ); "
"INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY) "
"VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); "
"INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY) "
"VALUES (3, 'Teddy', 23, 'Norway', 20000.00 ); "
"INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY) "
"VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ); ";
// 执行SQL语句
exit = sqlite3_exec(DB, sql_insert, 0, 0, &errorMessage);
if (exit != SQLITE_OK) {
std::cerr << "Error INSERT: " << errorMessage << std::endl;
sqlite3_free(errorMessage);
} else {
std::cout << "Records created successfully" << std::endl;
}
// 查询表中的数据
const char* sql_select = "SELECT * FROM COMPANY";
exit = sqlite3_exec(DB, sql_select, callback, 0, &errorMessage);
if (exit != SQLITE_OK) {
std::cerr << "Error SELECT: " << errorMessage << std::endl;
sqlite3_free(errorMessage);
} else {
std::cout << "Operation done successfully" << std::endl;
}
// 关闭数据库连接
sqlite3_close(DB);
return 0;
}
(7)数据库查询
运行程序,查看数据库查询结果。
热门推荐
掼蛋的精髓
1.4亿人都在打!爆火的掼蛋,有“必胜”的秘籍吗?
5G宽带为农村插上科技翅膀,助力乡村振兴
四川实现“村村通5G”:数字乡村建设迈出新步伐
千兆县、5G乡、宽带村:农村5G宽带普及加速三农发展
交通运输部发布2024年春节期间全国公路网运行研判分析报告
去世老人户籍注销全流程指南
哪所大学毕业后赚钱最多?最新排名揭晓
2025USnews美国最佳大学排名机制变化分析
洪山教师薪资揭秘:月薪过万的秘密
“最帅康熙”马浚伟转型公务员,曾是北大学霸
低空经济企业市值榜:最高近千亿元,北京和陕西总市值领跑
低空经济成就高质量发展,2025的天空等你翱翔
一线回访|低空经济持续升温:政策落地,订单多了,有企业开始抢人
盐酸丁螺环酮:镇静作用小,无依赖性,是治疗焦虑的新选择
抗抑郁药盐酸丁螺环酮并非无害,中药可作替代
盐酸丁螺环酮片治疗焦虑:适用人群、使用禁忌与副作用全解析
用心理学打造高效团队:六大维度提升团队效能
科技如何改变我们的社交方式:点赞是否真的能增进关系?
卫斯理大学:一所注重人文艺术的顶尖文理学院
1998版《鹿鼎记》:韦小宝与康熙的权力与友情博弈
《花千骨》幕后:从吻戏到特效,打造200亿流量神剧
《花千骨》里的师徒之恋:一场关于责任与爱情的抉择
移动支付普及率超86%,但三大隐患或致其走向消亡
车险浮动机制详解:六大因素影响保费定价
酒驾扣12分,超速扣6分:2024年交通违法扣分新标准
运动鞋清洗有妙招:牙膏白醋轻松去污,小苏打除臭
赵丽颖首摘百花奖,以聋哑人角色实现电影突破
赵丽颖获飞天金鹰双奖,用演技回应质疑
从纯真到妖神:赵丽颖演绎《花千骨》成演艺里程碑