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...