1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/brinkqiang-dmorm

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

dmorm

Copyright (c) 2013-2018 brinkqiang (brink.qiang@gmail.com)

Build status

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:

  • Измените файл src/person.proto в соответствии со своими потребностями.
  • Запустите скрипт build_person.bat. Это создаст файл person.orm.h, который действует как автоматически сгенерированный файл отображения ORM.
  • Перед продолжением убедитесь, что у вас установлен CMake.
  • После установки CMake снова запустите скрипт build.bat. Он создаст проект Visual Studio для работы. Примечание: библиотеки, расположенные в каталоге thirdparty/mysql, предназначены специально для систем WIN64. Если вам нужно использовать dmorm на системе WIN32, вам придётся самостоятельно загрузить соответствующие библиотеки MySQL.

— Linux:

  • Аналогично Windows, измените файл src/person.proto под свою модель данных.
  • Запустите скрипт build_person.sh. Это также создаст файл person.orm.h.
  • В отличие от Windows, вам не нужны дополнительные установки. Просто запустите bash build.sh в терминале, и он всё сделает.

Генерация файлов отображения 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/brinkqiang-dmorm.git
git@api.gitlife.ru:oschina-mirror/brinkqiang-dmorm.git
oschina-mirror
brinkqiang-dmorm
brinkqiang-dmorm
master