C 實現的ORM對映工具類介紹 三

2021-04-26 17:02:45 字數 1466 閱讀 7910

dbmanager類:

class dbmanager;

#include "dbmanager.hpp"

dbmanager* dbmanager::pdbmanager=null;

dbmanager::~dbmanager()

for(int i=0;iclassnamevector.size();j++)

if (pmodellib!=null)

if (plibrary!=null)}}

dbconfig * dbmanager::getdbconfig()

dbmanager * dbmanager::getinstance()

}return pdbmanager;

}bool dbmanager::init()

xmlnode datasoucetnode=rootnode.getchildnode("datasouce");

if (datasoucetnode.isempty())

initdatasouce(datasoucetnode);

xmlnode modelsnode=rootnode.getchildnode("models");

for(int i=0;ivoid dbmanager::initmodellib()}}

void dbmanager::initdatasouce(xmlnode node)

tmpnode=node.getchildnode("username");

if (tmpnode.gettext()!=null)

tmpnode=node.getchildnode("passward");

if (tmpnode.gettext()!=null)

tmpnode=node.getchildnode("servername");

if (tmpnode.gettext()!=null)

tmpnode=node.getchildnode("maxconn");

if (tmpnode.gettext()!=null)

tmpnode=node.getchildnode("initconn");

if (tmpnode.gettext()!=null)

tmpnode=node.getchildnode("showsql");

if (tmpnode.gettext()!=null)else

}pdbconfig->setdatasouce(pdatasouce);

}mapopertor操作模板類:

template

class mapopertor

iter++;}}

static t2 * getptr(t1 *pt1,string key)

return (t2 *)(iter->second);

}static void addptr(t1 *pt1,t2 *pt2,string key)

C 實現的ORM對映工具類介紹 三

dbmanager類 class dbmanager include dbmanager.hpp dbmanager dbmanager pdbmanager null dbmanager dbmanager for int i 0 iclassnamevector.size j if pmodel...

C 根據反射和特性實現ORM對映例項分析

一 關於反射 什麼是反射?反射就是在執行時,動態獲取物件資訊的方法。比如 執行時獲得物件有哪些屬性,方法,委託等。反射的作用?能夠實現執行時,動態呼叫物件的方法,以及動態設定 獲取屬性值等。反射的示例 using system using system.reflection namespace cs...

ODB 基於c 的ORM對映框架嘗試 使用

摘要 2 使用 首先,需要定義乙個物件,用來和資料庫字段對應 cce lang cpp ifndef volume h define volume h include include pragma db object cl 2 使用 首先,需要定義乙個物件,用來和資料庫字段對應 cce lang c...