mysql(C++)----管理系统

这里写目录标题

VS项目环境配置

配置mysql Connect库

1、debug改为release

2、右击项目,选择"属性"

3、安装完mysql的电脑,C盘以下路径会有以下文件:

4、添加"库的头文件目录"

将上图路径,填入上面的"附加包含目录"

5、添加"库目录"

将上图路径,填入上面的"附加库目录"

添加程序的"依赖项":

填入上图两个文件的全名(含.lib后缀)

注意,这里是动态库导入库,不是静态库

配置boost库

有的mysql版本,还需要配置boost库

下载好boost库之后,来到这个位置

将该路径添加到"附加包含目录"

之后来到这个位置:

添加到"附加库目录"

不用添加"依赖项"

拷贝mysql Connect相关的动态库到当前程序可执行文件目录内

将上述动态库文件,复制


先生成一下,可以找到所编译生成的exe文件所在目录

将上面四个动态库 拷贝到exe所在目录

如上述测试需要用到代码,使用:

cpp 复制代码
#include <mysql_driver.h>
#include <mysql_connection.h>
#include <cppconn/statement.h>
#include <cppconn/resultset.h>
#include <cppconn/exception.h>
#include <iostream>

int main() {
	try {
		// 创建 MySQL 驱动对象
		sql::mysql::MySQL_Driver* driver;
		sql::Connection* con;
		sql::Statement* stmt;
		sql::ResultSet* res;

		// 初始化 MySQL 驱动
		driver = sql::mysql::get_mysql_driver_instance();

		// 连接到 testdb 数据库,假设用户名为 "root" 和密码为 "password"
		con = driver->connect("tcp://127.0.0.1:3306", "root", "123456");

		// 选择 testdb 数据库
		con->setSchema("winstudydb");

		// 创建 SQL 查询语句
		stmt = con->createStatement();
		res = stmt->executeQuery("SELECT * FROM books");

		// 遍历并输出结果
		while (res->next()) {
			std::cout << "book_id: " << res->getInt("book_id") << "\n";
			std::cout << "title: " << res->getString("title") << "\n";
			std::cout << "author: " << res->getString("author") << "\n";
			std::cout << "published_date: " << res->getString("published_date") << "\n";
			std::cout << "--------------------------" << std::endl;
		}

		// 释放资源
		delete res;
		delete stmt;
		delete con;

	}
	catch (sql::SQLException& e) {
		std::cerr << "MySQL error: " << e.what() << std::endl;
	}

	return 0;
}

代码

头文件的作用

代码解析

一般想在C++程序中操作数据库,就是这些操作,如上图1-6

实现需求

架构



显示菜单

为什么要getchar(),因为什么有一个cin>>choice,他不会读取最后的换行符

所以,使用getchar()读取这个剩余的换行符

还可以使用cin.ignore()代替

而之后的getline会读取最后的换行符,但是不会读到目标字符串中,而是丢弃,所以后续的getline也可以顺利读取,不会读到多余换行符

注意,sql注入时,要将string变量转为const char *,使用c_str()方法

添加书籍

查看所有书籍

删除书籍

更新书籍

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

相关推荐
余槐i1 小时前
MySQL 8.0 联合索引走错:为什么加了索引查询反而从 200ms 变成 8s
java·spring boot·mysql·docker·性能优化
进击的荆棘2 小时前
MySQL——数据库基础
数据库·mysql
Decay__2 小时前
22_MySQL 运维自动化平台 —— 部署编排 + 监控 + 巡检 + 告警 + 工单闭环一体化
运维·数据库·sql·mysql·架构
FungLeo2 小时前
成为全栈·基础补充·数据库索引:为什么加了索引还是慢
mysql·postgresql·sqlite·sql优化·数据库索引·成为全栈
codeejun2 小时前
每日一Go·MySQL-11、覆盖索引 & 回表原理
javascript·数据库·mysql
Decay__3 小时前
21_MySQL 优化案例集 —— 慢 SQL 优化、索引重构与参数调整收益对比
运维·数据库·sql·mysql·架构
挖掘狂人4 小时前
MySQL 深分页优化:limit 100000, 10 慢在哪,怎么救
后端·sql·mysql
codigger5 小时前
MySQL 深分页优化:limit 100000, 10 慢在哪,怎么救
数据库·sql·mysql·程序员
Decay__14 小时前
18_MySQL 智能巡检方案 —— 巡检项清单 / 一键巡检脚本 / 健康评分
运维·数据库·sql·mysql·架构
凤凰院凶涛QAQ15 小时前
《MySQL内核拆解:从SQL到InnoDB》(四) : 联合查询 & 视图
数据库·sql·mysql