wojilu系統的ORM介紹

2021-09-06 03:44:04 字數 2373 閱讀 7484

wojilu系統是乙個包含了很多很多子系統的框架,當然,orm也是其中乙個很有用的系統。

wojilu orm 盡量設計得簡單易用,從下圖可以看出,總共也就9個方法(過載方法不算)。

下面舉一些例子來演示:

findbyid

article article = article.findbyid( 2 );

findall

listlist = article.findall();

find

說明:本方法最強大,一般的查詢、搜尋都使用本方法。

listlist = article.find( "title=:t and isdelete=:isdel" )

.set( "t", "" )

.set( "isdel", 1 )

.list();

listlist = article.find( "title=:t and isdelete=:isdel" )

.set( "t", "" )

.set( "isdel", 1 )

.first(); 

引數化查詢說明1

注意,不應該是

引數化查詢說明2

findpage

datapageplist = article.findpage( "isdelete=0" );

int rd = plist.recordcount;

int pagecount = plist.pagecount;

string pagerbar = plist.pagebar;

listlist = plist.results;

findbysql

listlist = article.findbysql( "select * from article" );

count

int articlecount = article.count( "isdelete=0" );

insert

article article = new article();

...article.insert();

update

article article = article.findbyid( 2 );

article.title = "my new title";

article.update(); 

update( string property )

article article = article.findbyid( 2 );

article.title = "my new title";

article.update( "title" );  

updatebatch

article.updatebatch( "set isdelete=1", "categoryid=2" );

delete

article article = article.findbyid( 2 );

article.delete();  

deletebatch

article.deletebatch( "categoryid=2" );

以上方法看似簡單,實際上可以對付99%的資料操作需求,尤其是第三個find方法,採用引數化查詢方式,可以做大多數事情。

另外的 1% 的需求,您可以通過 db.run 物件操作,也就是直接使用原生的sql語句。

在設計 wojilu orm 的時候,改版了好多次,曾經的介面方法要多很多,也複雜很多。比如曾經有乙個 findby( string property, object val ) 方法,看似很有用,在實際專案中進行統計之後,才發現用到的地方極少,就砍掉了,萬一需要,您也可以通過find方法實現。

這就是 wojilu orm 的設計原則:簡潔!簡潔!簡潔!實用!實用!實用!

wojilu orm 配置:

同時,wojilu的orm,如果和wojilu的快取系統一起使用,則可以將資料庫訪問的效能達到乙個極致。

關於orm中啟用資料庫事務的介紹: 

ORM模型類介紹,

所有的軟體開發過程中,都會涉及到物件和關係型資料庫,在使用者層面和業務邏輯層面,程式設計師編寫 都是物件導向的,當我們物件的資訊發生變化的時候,都需要將對應的資訊,傳到關係型資料庫中.而在此之前,需要我們編寫對應的sql語句來建立資料表,例如 建立乙個auth user表,需要定義好每乙個字段,給字...

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對映工具類介紹 三

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