C++怎么把文件内容存到数据库里
时间: 2024-09-09 15:14:57 浏览: 46
C++ 中实现把EXCEL的数据导入数据库(ACCESS、MSSQL等)实例代码
在C++中,将文件内容存储到数据库通常涉及两个步骤:首先读取文件内容,然后将数据插入到数据库中。这里以MySQL为例说明:
1. **读取文件内容**:
使用`std::ifstream`从文件中逐行读取数据,将其存储到字符串、数组或其他合适的容器中。例如:
```cpp
#include <fstream>
#include <string>
std::ifstream file("file.txt");
std::string line;
std::vector<std::string> data;
while (std::getline(file, line)) {
data.push_back(line);
}
```
2. **连接到数据库并插入数据**:
需要使用数据库API如MySQL Connector/C++,先建立连接,创建游标,然后执行SQL插入语句。假设已经包含了MySQL连接库(mysql_driver.h, mysql_connection.h等),可以这样做:
```cpp
#include <mysql_driver.h>
#include <mysql_connection.h>
// 创建数据库连接
sql::Driver* driver;
sql::Connection* con = driver->connect("tcp://localhost:3306", "username", "password");
// 打开数据库和表
sql::Statement* stmt = con->createStatement();
stmt->execute("USE your_database;");
// 构建插入语句
std::stringstream sql;
sql << "INSERT INTO your_table (column1, column2) VALUES (?, ?)";
for (const auto& item : data) {
sql.clear(); // 清空流后再构造新的SQL
sql.str("");
sql << sql.rdbuf(); // 获取构建好的SQL
stmt->execute(sql.str(), item.c_str(), item.c_str()); // 数据列名应与表对应
}
// 关闭资源
delete stmt;
delete con;
driver->finish();
```
**注意**: 这只是一个基本示例,实际操作可能会涉及到错误处理、事务管理以及更复杂的数据库操作。
阅读全文