国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種利用編寫實(shí)體類特性實(shí)現(xiàn)簡單數(shù)據(jù)庫的方法

      文檔序號(hào):6403124閱讀:241來源:國知局

      專利名稱::一種利用編寫實(shí)體類特性實(shí)現(xiàn)簡單數(shù)據(jù)庫的方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及計(jì)算機(jī)軟件C#對(duì)象實(shí)例創(chuàng)建領(lǐng)域,特別涉及利用編寫實(shí)體類特性從而實(shí)現(xiàn)簡單處理數(shù)據(jù)的通用方法,具體地說是一種利用編寫實(shí)體類特性實(shí)現(xiàn)簡單數(shù)據(jù)庫的方法。
      背景技術(shù)
      :目前隨著信息化的日益加深,市場(chǎng)上系統(tǒng)也琳瑯滿目,各種各樣的系統(tǒng)也帶來了數(shù)據(jù)的交互問題,由于一個(gè)大的企業(yè)對(duì)于信息化的要求不同,不同的部門、不同的業(yè)務(wù)也需要有不同的系統(tǒng)來支撐,那么怎么樣才能更好更快的實(shí)現(xiàn)不同系統(tǒng)之間的數(shù)據(jù)交互呢?在.NET中通用的做法是做WebService向外部提供接口,包括提供給外部程序的接口和外部環(huán)境推送過來的數(shù)據(jù)等,那么怎么樣將這些簡單的涉及到數(shù)據(jù)庫操作的工作簡化,快速實(shí)現(xiàn),解放勞動(dòng)力就成了我們需要考慮的問題?,F(xiàn)在軍工行業(yè)版中對(duì)外提供的接口,所采用的是一套固定的模式,在接口最上層寫外層展現(xiàn)方法,邏輯層寫抽取數(shù)據(jù)的邏輯(或者轉(zhuǎn)化數(shù)據(jù)層的數(shù)據(jù)),數(shù)據(jù)層將數(shù)據(jù)轉(zhuǎn)化并保存到數(shù)據(jù)庫中(或者取數(shù)據(jù)),這樣當(dāng)一個(gè)客戶每提出要同步一個(gè)別的系統(tǒng)的表數(shù)據(jù)到本系統(tǒng)中(或同步本系統(tǒng)數(shù)據(jù)到別系統(tǒng)中時(shí)),我們不得不每一層都加一個(gè)方法,以實(shí)現(xiàn)接口。這樣就比較繁瑣了,既然我們有用到實(shí)體類,何不利用實(shí)體類中根據(jù)特性所提供的信息,將邏輯層和數(shù)據(jù)層進(jìn)行一次封裝,而每當(dāng)我們需要增加一個(gè)簡單的接口時(shí),只需要在外層(即asmx這個(gè)頁面)寫方法,然后配置一個(gè)實(shí)體類,就可以將接口完成。
      發(fā)明內(nèi)容本發(fā)明的目的是提供一種利用編寫實(shí)體類特性實(shí)現(xiàn)簡單數(shù)據(jù)庫的方法。本發(fā)明的目的是按以下方式實(shí)現(xiàn)的,通過反射、泛型、自定義特性技術(shù)實(shí)現(xiàn)簡單業(yè)務(wù)層的統(tǒng)一口徑的封裝,針對(duì)不同的實(shí)體類實(shí)現(xiàn)數(shù)據(jù)庫的簡單操作,有效降低了業(yè)務(wù)邏輯層的編寫工作強(qiáng)度,提高了工作效率,步驟如下:1)自定義特性類,用于存儲(chǔ)實(shí)體類所對(duì)應(yīng)的一些操作信息;2)利用泛型技術(shù),統(tǒng)一封裝以對(duì)應(yīng)不同的實(shí)體類;3)通過反射技術(shù)收集實(shí)體類的屬性、特性信息;4)實(shí)現(xiàn)面向接口編程與創(chuàng)建對(duì)象的融合。本發(fā)明的優(yōu)異效果:創(chuàng)建了特性類;利用泛型技術(shù)實(shí)現(xiàn)了本方法對(duì)實(shí)體類的通用;提供系統(tǒng)擴(kuò)展便利方式;實(shí)體類中的一些信息都通過反射等技術(shù)實(shí)現(xiàn),統(tǒng)一管理;本技術(shù)實(shí)現(xiàn)簡單,無特殊保密算法;調(diào)用實(shí)現(xiàn)簡單易用;降低了編程的復(fù)雜度,進(jìn)而提高了編程的效率。圖1是系統(tǒng)結(jié)構(gòu)示意圖;圖2為工作流程圖。具體實(shí)施例方式參照說明書附圖對(duì)本發(fā)明的方法作以下詳細(xì)地說明。本發(fā)明所要解決的技術(shù)問題是通過自定義特性類,將一些表信息分裝到特性類中,進(jìn)而封裝簡單的插入、更改的邏輯。本發(fā)明還利用的泛型技術(shù),對(duì)不同的實(shí)體類實(shí)現(xiàn)封裝操作。為了解決上邊的問題,本發(fā)明實(shí)施例提供了一種編寫實(shí)體類特性從而實(shí)現(xiàn)簡單處理數(shù)據(jù)的通用方法。包括:自定義特性類,用于存儲(chǔ)實(shí)體類所對(duì)應(yīng)的一些操作信息;利用先進(jìn)的泛型技術(shù),統(tǒng)一封裝以對(duì)應(yīng)不同的實(shí)體類;通過反射等技術(shù)收集實(shí)體類的屬性,特性信息;實(shí)現(xiàn)面向接口編程與創(chuàng)建對(duì)象的融合。實(shí)施例本發(fā)明方法適用于C#程序的對(duì)象實(shí)例創(chuàng)建及面向接口編程實(shí)現(xiàn)。其具體實(shí)現(xiàn)方式如圖所示。、自定義特性類如下:Il描述類的特性類TableA`ttribute[AttributeUsage(AttributeTargets.Class)]publicclassTableAttribute:Attribute{privatestringtabIeName;privatestringtableWhere;publicTableAttribute(stringtabIeNamejstringtabelwhere){this.tableName=tabIeName;this.tableWhere=tabelwhere;}III〈summary>///表名III</summary)publicstringTableName{get{returntableName;}set{this.tableName=value;}}III〈summary>///獲取、跟新的條件///</summary)publicstringTableWhere{get{returntableWhere;}set{this.tableWhere=value;}}}Il描述屬性的特性類ColumnAttributepublicenumColType{sSTRING,sNUMBER}[AttributeUsage(AttributeTargets.Property)]publicclassColumnAttribute:Attribute{privatebool_iscol;privatestring_colname;privatebool_isKey;privateColType_coltype;publicColumnAttribute(booliscol,stringcolname,boolisKey,ColTypetype){—iscol=iscol;_colname=colname;_isKey=isKey;—coltype=type;}publicboolIsCol{get{return—iscol;}set{—iscol=value;}}publicboolIsKey{get{return_isKey;}set{_isKey=value;}}publicstringColName{get{return_colname;}set{_colname=value;}}publicColTypeColStyle{get{return—coltype;}set{—coltype=value;}}}2、封裝具體邏輯的過程:publicclassFoolDB〈T>whereT:new(){#region私有變量privatePropertyInfo[]lstpro;//存放spi中所有的屬性值privateList<PropertyInfo>exportpro=newList〈PropertyInfo>();//存放有特性需要導(dǎo)出的屬性字段列表privatestringsql=string.Empty;//用于存放sql容器privateList<string>lstsql=newList<string>();//用于存放所要一次性執(zhí)行的sql集合privateDataBaseDBHandle;//封裝于底層的DataBaseprivateGMessagemess=newGMessage();//所要返回的信息privatestringtabname=string.Empty;//執(zhí)行數(shù)據(jù)庫操作的表名privatestringtabwhere=string.Empty;//足艮新/選取記錄時(shí)的條件#endregion#region共有方法#region新增操作///〈summary>///普通的插入操作///</summary)///〈paramname=〃IstT〃>〈/param>///〈paramname=//sztxx//>注冊(cè)的實(shí)例</param>///〈returnsX/returns)publicGMessageInsert(List〈T>IstTjstringsztxx){DBHandle=newDataBase(sztxx);stringcols=string.Empty;stringvals=string.Empty;ColumnAttributeatt;Typett=typeof(T);lstpro=tt.GetProperties();GetTableAttributeInfo();//獲取SPI類的特性,獲取表名及記錄選取條件foreach(TnewTinIstT){foreach(Propertylnfopinlstpro){//選取spi中的列特性att=Attribute.GetCustomAttribute(p,typeof(ColumnAttribute))asColumnAttribute;if(att!=null)//不為空時(shí),取出特性中的列名和值{if(!att.1sCol)continue;cols+=att.ColName+〃,〃;//分情況獲取1:字符串類型;:數(shù)值型vals+=GetColumnAttributelnfo(newT,att,p);}else//為空時(shí)默認(rèn)選取類名為表名,列為字符型{cols+=p.Name+",";vals+=””+p.GetValue(newT,null)+}}sql=〃INSERTINTO〃+tabname+〃(〃+cols.Remove(cols.LastIndexOf(","),I)+〃)VALUESC+vals.Remove(vals.LastIndexOf(","),I)+〃)";lstsql.Add(sql);}try{DBHandle.Execute(lstsql.ToArray());mess.Flag=GMessageFlag.SUCCESS;mess.Content=〃保存成功!";}catch(Exceptionex){mess.Flag=GMessageFlag.FAIL;mess.Content=〃保存失??!’/+ex.Message;}returnmess;權(quán)利要求1.一種利用編寫實(shí)體類特性實(shí)現(xiàn)簡單數(shù)據(jù)庫的方法,其特征在于通過反射、泛型、自定義特性技術(shù)實(shí)現(xiàn)簡單業(yè)務(wù)層的統(tǒng)一口徑的封裝,針對(duì)不同的實(shí)體類實(shí)現(xiàn)數(shù)據(jù)庫的簡單操作,有效降低了業(yè)務(wù)邏輯層的編寫工作強(qiáng)度,提高了工作效率,步驟如下:1)自定義特性類,用于存儲(chǔ)實(shí)體類所對(duì)應(yīng)的一些操作信息;2)利用泛型技術(shù),統(tǒng)一封裝以對(duì)應(yīng)不同的實(shí)體類;3)通過反射技術(shù)收集實(shí)體類的屬性、特性信息;4)實(shí)現(xiàn)面向接口編程與創(chuàng)建對(duì)象的融合。全文摘要本發(fā)明提供一種利用編寫實(shí)體類特性實(shí)現(xiàn)簡單數(shù)據(jù)庫的方法,該方法是利用自定義用于類的特性類TableAttribute和用于屬性的特性類TableAttribute,通過實(shí)體類中特性的信息,實(shí)現(xiàn)對(duì)邏輯業(yè)務(wù)層中簡單的保存、修改的封裝,從而使得在對(duì)數(shù)據(jù)庫簡單的操作中,只需編寫相對(duì)應(yīng)的實(shí)體類,調(diào)用封裝的統(tǒng)一泛型類FoolDB<T>就可以實(shí)現(xiàn)傻瓜式的保存、修改等操作。提高了編寫程序的效率,尤其是在對(duì)外部做WebService接口時(shí),節(jié)省了大量的人力、物力。文檔編號(hào)G06F17/30GK103246743SQ20131018965公開日2013年8月14日申請(qǐng)日期2013年5月21日優(yōu)先權(quán)日2013年5月21日發(fā)明者王彥軍申請(qǐng)人:浪潮集團(tuán)山東通用軟件有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1