日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LmgORM项目: 介绍

發(fā)布時(shí)間:2024/4/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LmgORM项目: 介绍 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

LmgOrm介紹?

目 錄?

第一章:前言... 3

第二章:系統(tǒng)層次劃分... 3

第三章:LmgOrm數(shù)據(jù)庫訪問層... 3

第四章:LmgOrm ORM.. 4

一:LmgOrm O/R Mapping 起步... 4

二:LmgOrm O/R Mapping映射方法說明... 4

三:LmgOrm O/R Mapping對繼承的支持... 4

四:LmgOrm O/R Mapping操作核心... 5

五:LmgOrm O/R Mapping 事務(wù)處理... 5

六:LmgOrm O/R Mapping 對象查詢... 5

七:LmgOrm O/R Mapping 配置文件... 5

第一章:前言?

LmgOrm的目標(biāo),是開發(fā)一個(gè)開源的基于Microsoft.Net的輕量級的應(yīng)用軟件系統(tǒng)開發(fā)框架,包含以下內(nèi)容:

? 一個(gè)輕量級的O/R Mapping框架。

這個(gè)框架從二年前就開始做了,但是因?yàn)楣ぷ鞯脑?#xff0c;具體的開發(fā)過程一直是斷斷續(xù)續(xù),中間因個(gè)人對編程思想認(rèn)識的變化,在結(jié)構(gòu)方面也一直有點(diǎn)變化。

第二章:系統(tǒng)層次劃分?

數(shù)據(jù)存取方式

第三章:LmgOrm數(shù)據(jù)庫訪問層?

第四章:LmgOrm ORM

一:LmgOrm O/R Mapping 起步

對開發(fā)人員來說,只有BaseDao、NHibernatePage、QueryHelper等極少數(shù)接口需要掌握,上手快,使用非常方便。

下面的例子給出了使用LmgOrm進(jìn)行ORM操作的基本過程。

定義一個(gè)類:

View Code public class Product{

private int m_ID;

private string m_Name;

private decimal m_Price;

public Product() { }

public Product(string name, decimal price){

m_Name
= name;

m_Price
= price;

}

public int ID{

get { return m_ID; }

set { m_ID = value; }

}

public string Name{

get { return m_Name; }

set { m_Name = value; }

}

public decimal Price{

get { return m_Price; }

set { m_Price = value; }

}

}

上面這個(gè)Produc類對應(yīng)的數(shù)據(jù)庫表的結(jié)構(gòu)應(yīng)該是:

下面的代碼演示了LmgOrm是如何把Product對象新增到數(shù)據(jù)庫中的。

二:LmgOrm O/R Mapping映射方法說明?

映射部分,完成對象和關(guān)系型數(shù)據(jù)庫之間映射關(guān)系的表達(dá)。LmgOrm使用xml來描述映射關(guān)系。

以下是實(shí)體類對應(yīng)的XML文件 需要設(shè)置成 嵌入的資源 要不然系統(tǒng)會報(bào)錯(cuò)的。

View Code <?xml version="1.0" encoding="GBK"?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="LmgOrm.Entity" assembly="LmgOrm.Entity"> <class name="Produc" table="cm_Produc" lazy="false"> <id name="Id" type="Int32" length="10"> <column name="id" not-null="true" unique="true"/> <generator class="sequence"> <param name="sequence">SEQ_Produc_ID</param> </generator> </id> <property name="Name" column="name" not-null="False" length="50" type="String"/> <property name="Price " column="price" not-null="False" length="10" type=" Int32 "/> </class> </hibernate-mapping>

三:LmgOrm O/R Mapping對繼承的支持?

LmgOrm目前支持一種繼承模式:ONE_CLASS_ONE_TABLE

這種映射模式將每個(gè)類映射到對應(yīng)的一個(gè)表

四:LmgOrm O/R Mapping操作核心?

LmgOrm O/R Mapping框架的操作核心,在于BaseDao類,對實(shí)體對象的操作,包括增、刪、改、查的操作,都是通過這個(gè)接口來進(jìn)行的。

查詢的補(bǔ)助類是:QueryHelper

SQL查詢補(bǔ)助類是:DbHelper

五:LmgOrm O/R Mapping 事務(wù)處理

LmgOrm框架提供了簡單的事務(wù)處理的能力,這是通過BaseDao接口來實(shí)現(xiàn)的。他們會自動開啟事務(wù)。

六:LmgOrm O/R Mapping 對象查詢

1:一般查詢

2:分頁查詢

QueryHelper queryHelper = new QueryHelper()

queryHelper.AddTable(
typeof(KnowUser), "m");

queryHelper.AddOrder(
"m", "ReTopic", false);

queryHelper.SetFullFieldSql(
null, null);

NHibernatePage nPage
= QueryHandler.Instance.QueryByPage("數(shù)據(jù)庫連接", typeof(KnowUser), curPage, pageSize, queryHelper);

七:LmgOrm O/R Mapping 配置文件

配置文件例子:

View Code <?xml version="1.0" encoding="gb2312" ?>

<LmgOrm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<LmgOrm.ORM>

<connections>

<connection name="DBNAME_COUNTRYDB" datetype="sqlserver2000" conntype="System.Data.SqlClient.SqlConnection" assembly="System.Data.SqlClient">

<![CDATA[Data Source=lmg\SQLEXPRESS;DataBase=countrydb;user=sa;password=123456;Connect Timeout=180;Enlist=true;Pooling=true;Max Pool Size = 300;Min Pool Size = 5;Connection Lifetime=200;]]>

</connection>

</connections>

<assembly>

<![CDATA[LmgOrm.Entity]]>

</assembly>

</LmgOrm.ORM>

<LmgOrm.Cache />

</LmgOrm>

第五章:LmgOrm Cache

一:LmgOrm Cache起步

這個(gè)沒什么說的用的dz!nt3.0的緩存,我是直接Copy過來的 隨便也學(xué)習(xí)學(xué)習(xí)一個(gè)它的原理咯。

二:LmgOrm Cache緩存架構(gòu)說明

緩存架構(gòu)說明如下:

看到了吧,里面的DNTCache就是“策略”模式的應(yīng)用場景,而DefaultCache , ForumCache,RssCache等等就是相應(yīng)的具體策略,每一種策略都會對.net所提供的緩存機(jī)制進(jìn)行一番“訂制”,以實(shí)現(xiàn)不同的用途。比如系統(tǒng)DefaultCache在對象到期時(shí)提供數(shù)據(jù)再次加載機(jī)制,而ForumCache而不使用這種機(jī)制,另外還有緩存的到期時(shí)間幾種策略也各不相同,這都是根據(jù)具體的應(yīng)用場景"量身訂制"的。

下面對緩存設(shè)計(jì)所采用的幾種技術(shù)做一下簡要說明。包括XML,XPATH ,"單件模式" 以及跨web園共享數(shù)據(jù)。

記得在豪杰工作期間,一次老梁給我們開會,其中的一段話我至今還記憶猶新,他說CPU訪問內(nèi)存的速度和訪問硬盤的速度在某些情況下是相近的,如果我沒理解的話比如說“虛擬緩存”或最新頻繁訪問的硬盤區(qū)段,這些地方的代碼或文件會有比較高的運(yùn)行和訪問效率。因此,我想到了使用文件標(biāo)志關(guān)聯(lián)的方法來解決這個(gè)多進(jìn)程問題。接著就順理成章的使用了文件修改日期這個(gè)屬性進(jìn)行在多進(jìn)程下緩存是否更新的依據(jù)了,大家可以到開源下載包中的config文件夾下把一個(gè)cache.config的文件,對應(yīng)最新的數(shù)據(jù)項(xiàng)再回過頭來看代碼就會一清二楚了

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的LmgORM项目: 介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。