dmorm
Copyright (c) 2013-2018 brinkqiang (brink.qiang@gmail.com)
Linux | Windows |
---|---|
![lin-badge] | ![win-badge] |
[lin-badge]: https://github.com/brinkqiang/dmorm/workflows/linux/badge.svg «статус сборки linux» [lin-link]: https://github.com/brinkqiang/dmorm/actions/workflows/linux.yml «статус сборки linux» [win-badge]: https://github.com/brinkqiang/dmorm/workflows/win/badge.svg «статус сборки windows» [win-link]: https://github.com/brinkqiang/dmorm/actions/workflows/win.yml «статус сборки windows»
English · 简体中文
dmorm — это фреймворк, который упрощает работу с реляционными базами данных, предоставляя функциональность объектно-реляционного отображения (ORM). Это руководство объяснит, как установить и использовать dmorm в Windows и Linux.
Использование:
dmormtest -user=root -pass=000000
Важно: используйте предоставленные учётные данные с осторожностью, особенно в рабочей среде.
— Windows:
— Linux:
Генерация файлов отображения ORM:
dmorm использует инструмент под названием dmgen4pborm для создания файлов отображения ORM из файлов Protocol Buffers.
dmgen4pborm --cpp_out=. person.proto
Эта команда генерирует файл сопоставления в текущем каталоге (обозначается точкой) на основе файла person.proto.
#include <iostream>
#include "dmgdb.hpp"
#include "person.orm.h"
#include "dmsnowflake.h"
#include "dmflags.h"
uint64_t NextID() {
static CDMIDGenerator gGen(0, 0);
return gGen.GetNextID();
}
DEFINE_string(ip, "127.0.0.1", "127.0.0.1");
DEFINE_string(user, "root", "root");
DEFINE_string(pass, "000000", "000000");
DEFINE_int32(port, 3306, "3306");
int main(int argc, char** argv) {
DMFLAGS_INIT(argc, argv);
GDb oGDB(FLAGS_ip, FLAGS_port, FLAGS_user, FLAGS_pass);
oGDB.init("");
DBQuery oQuery;
db_CreateTable(oGDB, oQuery);
CDMPB_tb_Person oPerson(oGDB, oQuery);
db::tb_Person data;
data.set_id(NextID());
data.set_number("13900112233");
data.set_email("person@163.com");
data.set_phonetype(::db::PhoneType::WORK);
oPerson.Insert(data);
{
std::vector<db::tb_Person> datas;
oPerson.Select(data, datas);
for (int i = 0; i < datas.size(); ++i) {
std::cout << datas[i].DebugString() << std::endl;
}
}
db::tb_Person data2;
data2.set_id(data.id());
data2.set_number("123456789");
oPerson.Update(data2);
db::tb_Person data3;
data3.set_id(NextID());
data3.set_number("13655265368");
data3.set_email("tom@qq.com");
data3.set_phonetype(::db::PhoneType::WORK);
oPerson.Insert(data3);
{
std::vector<db::tb_Person> datas;
oPerson.Select(datas);
for (int i = 0; i < datas.size(); ++i) {
std::cout << datas[i].DebugString() << std::endl;
}
}
oPerson.Del(data);
{
std::vector<db::tb_Person> datas;
oPerson.Select(data, datas);
for (int i = 0; i < datas.size(); ++i) {
std::cout << datas[i].DebugString() << std::endl;
}
}
fmt::print("Done\n");
return 0;
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )