<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] > [參考](https://www.ljjyy.com/archives/2021/03/100647.html) ## 概述 一個依賴qt 的orm管理 ## 示例 ``` git clone https://github.com/myhhub/QxOrm-project git clone https://github.com/QxOrm/QxOrm ``` 兩個git 倉庫放平級目錄下 1. 先編譯 QxOrm 2. 在執行 QxOrm-project user.h ``` _H #define USER_H class USER_DLL_EXPORT User { public: User() : id(0) { } virtual ~User() { } long id; QString name; int age; int isadmin; }; QX_REGISTER_HPP_USER(User, qx::trait::no_base_class_defined, 2); #endif // USER_H ``` user.cpp ``` #include "precompiled.h" #include "user.h" #include <QxOrm_Impl.h> QX_REGISTER_CPP_USER(User) namespace qx { template <> void register_class(QxClass<User> & t) { // 注冊 User::id <=> 數據庫中的主鍵 t.id(&User::id, "id"); // 注冊 User::name 屬性,使用的 key 是 name,version 是 1。 t.data(&User::name, "name", 1); // 注冊 User::age 屬性,使用的 key 是 age。 t.data(&User::age, "age"); t.data(&User::isadmin, "isadmin",2); } } ``` main.h ``` #include "precompiled.h" #include "user.h" #include <QxOrm_Impl.h> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 初始化參數,用于和數據庫交互 qx::QxSqlDatabase::getSingleton()->setDriverName("QSQLITE"); qx::QxSqlDatabase::getSingleton()->setDatabaseName("./Users.db"); qx::QxSqlDatabase::getSingleton()->setHostName("localhost"); qx::QxSqlDatabase::getSingleton()->setUserName("root"); qx::QxSqlDatabase::getSingleton()->setPassword(""); // 在數據庫中創建 User 表 QSqlError daoError = qx::dao::create_table<User>(); // 創建 3 個用戶 // 可以使用 std 和 Qt 智能指針:std::shared_ptr、QSharedPointer 等... typedef QSharedPointer<User> UserPtr; UserPtr u1; u1.reset(new User()); u1->name = "Jack Ma"; u1->age = 30; UserPtr u2; u2.reset(new User()); u2->name = "Pony"; u2->age = 25; UserPtr u3; u3.reset(new User()); u3->name = "Rose"; u3->age = 18; // 將所有用戶插入容器中 // 可以使用 std、boost、Qt 和 qx::QxCollection<Key,Value> 中的許多容器 typedef QVector<UserPtr> VectorUser; VectorUser users; users.push_back(u1); users.push_back(u2); users.push_back(u3); // 將容器中的所有用戶插入到數據庫中 // p1、p2、p3 的 id 屬性會自動更新 daoError = qx::dao::insert(users); // 修改第二個用戶的信息,并更新到數據庫中 u2->name = "Pony modified"; u2->age = 38; daoError = qx::dao::update(u2); // 從數據庫中刪除第一個用戶 daoError = qx::dao::delete_by_id(u1); // 計算用戶的數量 long userCount = qx::dao::count<User>(); qDebug() << "User Count: " << userCount; // 將 id 為 3 的用戶取出,并傳給一個新變量 UserPtr userTmp; userTmp.reset(new User()); userTmp->id = 3; daoError = qx::dao::fetch_by_id(userTmp); qDebug() << "User Tmp: " << userTmp->id << userTmp->name << userTmp->age; #if _QX_SERIALIZE_XML // 將容器中的用戶導出到 XML 文件中(序列化) qx::serialization::xml::to_file(users, "./export_users.xml"); // 將 XML 中的用戶導入至新容器 VectorUser usersXmlTmp; qx::serialization::xml::from_file(usersXmlTmp, "./export_users.xml"); #endif #ifndef _QX_NO_JSON // 將容器中的用戶導出到 Json 文件中(序列化) qx::serialization::json::to_file(users, "./export_users.json"); // 將 Json 文件中的用戶導入至新容器 VectorUser usersJsonTmp; qx::serialization::json::from_file(usersJsonTmp, "./export_users.json"); #endif // 克隆一個用戶 UserPtr uClone = qx::clone_to_qt_shared_ptr(*u1); qDebug() << "Clone from u1: " << uClone->id << uClone->name << uClone->age; // 按類名(factory)創建新用戶 qx::any uAny = qx::create("User"); // 將用戶插入到 qx::cache qx::cache::set("users", users); qx::cache::get // 從 qx::cache 中刪除所有元素 qx::cache::clear(); // 內存泄漏 User *user = new User(); qDebug() << " version ===========3========== "; return a.exec(); } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看