ormpp 项目教程
1. 项目的目录结构及介绍
ormpp 项目的目录结构如下:
ormpp/
├── CMakeLists.txt
├── LICENSE
├── README.md
├── codecov.yml
├── clang-format
├── gitignore
├── example/
├── frozen/
├── iguana/
├── lang/
│ └── english/
├── ormpp/
├── tests/
└── thirdparty/
目录结构介绍
- CMakeLists.txt: 项目的 CMake 构建文件。
- LICENSE: 项目的开源许可证文件,采用 Apache-2.0 许可证。
- README.md: 项目的介绍文档,包含项目的基本信息、使用方法和示例代码。
- codecov.yml: 代码覆盖率配置文件。
- clang-format: 代码格式化配置文件。
- gitignore: Git 忽略文件配置。
- example/: 包含项目的示例代码,展示了如何使用 ormpp 进行数据库操作。
- frozen/: 包含一些辅助工具和库。
- iguana/: 包含 ormpp 的核心代码,负责实现 ORM 功能。
- lang/: 包含项目的语言文件,目前只有英文。
- ormpp/: 包含 ormpp 的主要代码文件,定义了数据库操作的接口和实现。
- tests/: 包含项目的单元测试代码,用于测试 ormpp 的功能。
- thirdparty/: 包含项目依赖的第三方库。
2. 项目的启动文件介绍
ormpp 项目的启动文件主要是 example/
目录下的示例代码文件。这些文件展示了如何使用 ormpp 进行数据库的增删改查操作。
示例文件介绍
- example/main.cpp: 这是主要的示例文件,展示了如何连接数据库、创建数据表、插入数据、查询数据等操作。
#include "dbng.hpp"
#include "mysql.hpp"
using namespace ormpp;
struct person {
std::optional<int> age;
std::string name;
int id;
};
REGISTER_AUTO_KEY(person, id);
REGISTER_CONFLICT_KEY(person, name);
REFLECTION(person, id, name, age);
int main() {
person p = {"test1", 2};
person p1 = {"test2", 3};
person p2 = {"test3", 4};
std::vector<person> v{p1, p2};
dbng<mysql> mysql;
mysql.connect("127.0.0.1", "dbuser", "yourpwd", "testdb");
mysql.create_datatable<person>(ormpp_auto_key["id"]);
mysql.insert(p);
mysql.insert(v);
auto result = mysql.query_s<person>();
for (auto &person : result) {
std::cout << person.id << " " << person.name << " " << person.age << std::endl;
}
mysql.delete_records<person>();
return 0;
}
3. 项目的配置文件介绍
ormpp 项目的配置文件主要包括 CMakeLists.txt
和 clang-format
。
CMakeLists.txt
CMakeLists.txt
是项目的构建配置文件,定义了项目的构建规则和依赖项。
cmake_minimum_required(VERSION 3.10)
project(ormpp)
set(CMAKE_CXX_STANDARD 17)
add_subdirectory(ormpp)
add_subdirectory(example)
add_subdirectory(tests)
clang-format
clang-format
是代码格式化配置文件,定义了代码的格式化规则。
BasedOnStyle: Google
IndentWidth: 4
ColumnLimit: 120
通过这些配置文件,开发者可以方便地构建和格式化 ormpp 项目。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考