A fluent sql query builder
Go to file
Sascha Kuehl 640dcfadb6 finished postgres fetch 2023-11-26 20:09:48 +01:00
backends finished postgres fetch 2023-11-26 20:09:48 +01:00
cmake added column generator and tests 2023-11-11 08:29:22 +01:00
demo added demo target 2023-11-16 20:20:36 +01:00
include/matador finished postgres fetch 2023-11-26 20:09:48 +01:00
src finished postgres fetch 2023-11-26 20:09:48 +01:00
test finished postgres fetch 2023-11-26 20:09:48 +01:00
.gitignore started query builder 2023-11-01 19:55:09 +01:00
CMakeLists.txt added postgres backend 2023-11-25 12:33:51 +01:00
LICENSE Initial commit 2023-11-01 19:40:26 +01:00
README.md added any type visitor and converter 2023-11-21 20:07:07 +01:00
Todo.md renamed foreign class to entity, introduced interface class query_result_reader 2023-11-24 17:40:57 +01:00

README.md

query

A fluent sql query builder

Object definition

struct airplane
{
  unsigned long id;
  std::string brand;
  std::string model;

  template<class Operator>
  void process(Operator &op) {
    namespace field = matador::utils::access;
    field::primary_key(op, "id", id);
    field::attribute(op, "brand", brand, 255);
    field::attribute(op, "model", model, 255);
  }
};
connection_pool<connection> pool("sqlite://sqlite.db", 4);
session s(pool);

// register entity
s.attach<airplane>("airplane")

// create all tables
s.create();

// insert
s.insert<airplane>(1, "Airbus", "A380");
s.insert<airplane>(2, "Boeing", "748");
s.insert<airplane>(3, "Boeing", "707");

s.update<airplane>().set({"model", "747"}).where("id"_col == 2);

auto result = s.select<airplane>().where("brand"_col == "Boeing");

for (const auto &plane : result) {
  std::cout << "airplane: " << plane->brand << " - " << plane->model << "\n";
}