一種對持久化存儲的對象進(jìn)行操作的方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種對持久化存儲的對象進(jìn)行操作方法及裝置,該方法包括:生成包含有操作函數(shù)的第一公共接口,所述第一公共接口為數(shù)據(jù)庫中各個類實例化后的對象所共用;接收通過調(diào)用所述第一公共接口的操作函數(shù),發(fā)起的對目標(biāo)類實例化后的對象的第一操作請求;建立與所述數(shù)據(jù)庫的連接;將所述目標(biāo)類實例化后的對象映射為所述數(shù)據(jù)庫存儲的相應(yīng)集合中的文檔,對所述文檔執(zhí)行與所述第一公共接口中的操作函數(shù)相對應(yīng)的操作。本發(fā)明提供的技術(shù)方案能夠減少代碼量,提高開發(fā)和維護(hù)的有效性。
【專利說明】一種對持久化存儲的對象進(jìn)行操作的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實施例涉及計算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種對持久化存儲的對象進(jìn)行操作的方法及裝置。
【背景技術(shù)】
[0002]面向?qū)ο蟮拈_發(fā)方法是當(dāng)今企業(yè)級應(yīng)用開發(fā)環(huán)境中的主流開發(fā)方法,MongoDB數(shù)據(jù)庫是企業(yè)級應(yīng)用環(huán)境中以文檔(集合)形式永久存放數(shù)據(jù)的主流存儲系統(tǒng)。對象和文檔數(shù)據(jù)是業(yè)務(wù)實體的兩種表現(xiàn)形式,業(yè)務(wù)實體在內(nèi)存中表現(xiàn)為對象,在數(shù)據(jù)庫中表現(xiàn)為文檔數(shù)據(jù),故需要采用一種中間件,實現(xiàn)程序?qū)ο蟮組ongoDB數(shù)據(jù)庫數(shù)據(jù)的映射。
[0003]在現(xiàn)有的技術(shù)中,Morphia作為一種開放源代碼的ORM (Object RelationMapping,對象關(guān)系映射)框架,主要實現(xiàn)了 JAVA對象到MongoDB數(shù)據(jù)庫數(shù)據(jù)的映射,從而可以使得JAVA程序員可以十分方便的使用對象的編程思想來操縱MongoDB數(shù)據(jù)庫。
[0004]但是,現(xiàn)有的MongoDB數(shù)據(jù)庫的ORM框架存在如下缺陷:針對于MongoDB數(shù)據(jù)庫中的每一個集合(collection), ORM框架都生成一套DAO、Service,即為每個集合所對應(yīng)的對象實現(xiàn)一組對該對象進(jìn)行增、刪、改、查等操作的接口,代碼量大,開發(fā)和維護(hù)的難度較高。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種對持久化存儲的對象進(jìn)行操作的方法及裝置,以實現(xiàn)減少代碼量,提高開發(fā)和維護(hù)的有效性。
[0006]第一方面,本發(fā)明實施例提供了一種對持久化存儲的對象進(jìn)行操作的方法,該方法包括:
[0007]生成包含有操作函數(shù)的第一公共接口,所述第一公共接口為數(shù)據(jù)庫中各個類實例化后的對象所共用;
[0008]接收通過調(diào)用所述第一公共接口的操作函數(shù),發(fā)起的對目標(biāo)類實例化后的對象的第一操作請求;
[0009]建立與所述數(shù)據(jù)庫的連接;
[0010]將所述目標(biāo)類實例化后的對象映射為所述數(shù)據(jù)庫存儲的相應(yīng)集合中的文檔,對所述文檔執(zhí)行與所述第一公共接口中的操作函數(shù)相對應(yīng)的操作。
[0011]第二方面,本發(fā)明實施例還提供了一種對持久化存儲的對象進(jìn)行操作的裝置,該裝置包括:
[0012]公共接口生成單元,用于生成包含有操作函數(shù)的第一公共接口,所述第一公共接口為數(shù)據(jù)庫中各個類實例化后的對象所共用;
[0013]操作請求接收單元,用于接收通過調(diào)用所述第一公共接口的操作函數(shù),發(fā)起的對目標(biāo)類實例化后的對象的第一操作請求;
[0014]數(shù)據(jù)庫連接單元,用于建立與所述數(shù)據(jù)庫的連接;
[0015]數(shù)據(jù)庫操作單元,用于將所述目標(biāo)類實例化后的對象映射為所述數(shù)據(jù)庫存儲的相應(yīng)集合中的文檔,對所述文檔執(zhí)行與所述第一公共接口中的操作函數(shù)相對應(yīng)的操作。
[0016]本發(fā)明實施例通過生成一組為數(shù)據(jù)庫中各個類實例化后的對象所共用的公共接口,來實現(xiàn)對數(shù)據(jù)庫執(zhí)行相關(guān)操作的調(diào)用,而不是為每個集合對應(yīng)實現(xiàn)一組對該集合進(jìn)行增、刪、改、查等操作的接口,減少了代碼量,提高了開發(fā)和維護(hù)的有效性。
【專利附圖】
【附圖說明】
[0017]圖1是本發(fā)明實施例一提供的一種對持久化存儲的對象進(jìn)行操作的方法的流程示意圖;
[0018]圖2是本發(fā)明實施例一提供的方法所適用的一種網(wǎng)絡(luò)架構(gòu);
[0019]圖3是本發(fā)明實施例二提供的一種對持久化存儲的對象進(jìn)行操作的方法的流程示意圖;
[0020]圖4是本發(fā)明實施例三提供的一種對持久化存儲的對象進(jìn)行操作的裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0021]下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步的詳細(xì)說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
[0022]圖1為本發(fā)明實施例一提供的一種對持久化存儲的對象進(jìn)行操作的方法的流程示意圖。本實施例可適用于由服務(wù)開發(fā)平臺和數(shù)據(jù)庫平臺組成的網(wǎng)絡(luò)架構(gòu)中,該方法可以由對持久化存儲的對象進(jìn)行操作的裝置來執(zhí)行,該裝置可被置備在服務(wù)開發(fā)平臺上,也可獨立于數(shù)據(jù)庫平臺和服務(wù)開發(fā)平臺而存在,能夠與數(shù)據(jù)庫平臺與服務(wù)開發(fā)平臺通信連接。圖2是本發(fā)明實施例一提供的方法所適用的一種網(wǎng)絡(luò)架構(gòu)。參見圖2,該網(wǎng)絡(luò)架構(gòu)包括:應(yīng)用服務(wù)器201、對持久化存儲的對象進(jìn)行操作的裝置202和MongoDB數(shù)據(jù)庫203。裝置202接收應(yīng)用服務(wù)器201發(fā)起的操作請求,對該請求進(jìn)行處理,并根據(jù)處理結(jié)果對MongoDB數(shù)據(jù)庫203執(zhí)行相應(yīng)操作。
[0023]參見圖1,該方法具體包括如下步驟:
[0024]110、生成包含有操作函數(shù)的第一公共接口,所述第一公共接口為數(shù)據(jù)庫中各個類實例化后的對象所共用;
[0025]120、接收通過調(diào)用所述第一公共接口的操作函數(shù),發(fā)起的對目標(biāo)類實例化后的對象的第一操作請求;
[0026]130、建立與數(shù)據(jù)庫的連接;
[0027]140、將目標(biāo)類實例化后的對象映射為數(shù)據(jù)庫存儲的相應(yīng)集合中的文檔,對所述文檔執(zhí)行與第一公共接口中的操作函數(shù)相對應(yīng)的操作。
[0028]在本實施例的一個具體的實施方式中,可根據(jù)模板機(jī)制生成包含有操作函數(shù)的第一公共接口。其中,模板機(jī)制是針對同一類問題所提供的一種通用的解決方案,是代碼重用機(jī)制的一種工具,可通過將類型參數(shù)化,來實現(xiàn)真正的代碼可重用性。
[0029]在此【具體實施方式】下,根據(jù)模板機(jī)制將現(xiàn)有技術(shù)實現(xiàn)的與數(shù)據(jù)庫中的每一個類相對應(yīng)的各接口,轉(zhuǎn)換成能夠為數(shù)據(jù)庫中各個類實例化后的對象所共用的一個接口(第一公共接口)。該接口包含了各種操作函數(shù),操作函數(shù)將數(shù)據(jù)庫中的各個類的名稱定義為一個參數(shù),操作函數(shù)可根據(jù)所定義的各個類的名稱和/或其相應(yīng)的對象的唯一標(biāo)識這些參數(shù)來進(jìn)一步實現(xiàn)對相應(yīng)類的操作。在本實施例中,操作函數(shù)可包括插入操作函數(shù)、刪除操作函數(shù)、更新操作函數(shù)和/或查詢操作函數(shù)。本領(lǐng)域的普通技術(shù)人員應(yīng)理解,還可基于第一公共接口自行擴(kuò)展一些個性接口以完成對數(shù)據(jù)庫中特殊對象的操作;操作函數(shù)還可包括批量插入操作函數(shù)、條件查詢操作函數(shù)等。
[0030]下面以一段具體的第一公共接口的實現(xiàn)代碼為例,對第一公共接口作進(jìn)一步解釋。
[0031]public class MongoDaoImpKT extends Object>implements IMongoDao〈T>//聲明第一公共接口{
[0032]public void save (T entity) throws Exception//第一公共接口中的插入操作函數(shù),其參數(shù)中:形參T為數(shù)據(jù)庫中的各個類的模板類型,實參entity是對T實例化的對象
[0033]{
[0034]if(entity==null){throw new Exception(^entity can not be null!〃);}
[0035]ds=MongoDatasource.getlnstance(getDatasource()).getDatastore(entity.getCla
[0036]ss ());
[0037]ds.save(entity);
[0038]}
[0039]public T get (Class<T>clazz, Object id) throws Exception//第一公共接口中的查找操作函數(shù),其參數(shù)中:形參T為數(shù)據(jù)庫中的各個類的模板類型,實參clazz是對T實例化的對象,與形參Object這一數(shù)據(jù)類型所對應(yīng)的實參id是對象clazz的唯一標(biāo)識;其返回類型為T
[0040]{
[0041]if(id==null){throw new Exception(〃id can not be null!〃);}
[0042]ds=MongoDatasource.getlnstance(getDatasource()).getDatastore(clazz);
[0043]if (id instanceof String){return
[0044]ds.createQuery (clazz).field (Mapper.1D_KEY).equal ((String)id).get ();}
[0045]else if(id instanceofObjectld){return
[0046]ds.createQuery (clazz).field (Mapper.1D_KEY).equal ((ObjectId) id).get 0 ; I
[0047]return null;
[0048]}
[0049]}
[0050]在生成第一公共接口之后,當(dāng)接收到服務(wù)開發(fā)平臺通過調(diào)用第一公共接口的操作函數(shù),發(fā)起的對目標(biāo)類實例化后的對象的第一操作請求時,可首先:獲取數(shù)據(jù)庫的地址連接信息,根據(jù)該信息建立與數(shù)據(jù)庫平臺的連接;然后:將目標(biāo)類實例化后的對象映射為數(shù)據(jù)庫存儲的相應(yīng)集合中的文檔,通過封裝好的能夠?qū)?shù)據(jù)庫中的集合直接進(jìn)行操作的源生操作腳本,對所述文檔執(zhí)行與第一公共接口中的操作函數(shù)相對應(yīng)的操作。[0051]本實施例提出的技術(shù)方案,通過生成一組為數(shù)據(jù)庫中各類實例化后的對象所共用的公共接口,來實現(xiàn)對數(shù)據(jù)庫執(zhí)行相關(guān)操作的調(diào)用,而不是為每個集合對應(yīng)實現(xiàn)一組對該集合進(jìn)行增、刪、改、查等操作的接口,減少了代碼量,提高了開發(fā)和維護(hù)的有效性。
[0052]圖3是本發(fā)明實施例二提供的一種對持久化存儲的對象進(jìn)行操作的方法的流程示意圖,本實施例在上述實施例一的基礎(chǔ)上,進(jìn)一步增加了通過注解的方式建立目標(biāo)類與數(shù)據(jù)庫中集合之間的映射關(guān)系的步驟,以解決通過配置文件實現(xiàn)映射關(guān)系所存在的問題,同時對與數(shù)據(jù)庫的連接建立過程作進(jìn)一步優(yōu)化,以提高對數(shù)據(jù)庫的使用效率。
[0053]參見圖3,該方法具體包括如下步驟:
[0054]310、通過注解的方式建立數(shù)據(jù)庫中集合與各個類之間的映射關(guān)系;
[0055]320、生成包含有操作函數(shù)的第一公共接口,所述第一公共接口為數(shù)據(jù)庫中各個類實例化后的對象所共用;
[0056]330、接收通過調(diào)用所述第一公共接口的操作函數(shù),發(fā)起的對目標(biāo)類實例化后的對象的第一操作請求;
[0057]340、通過解析連接配置文件,確定數(shù)據(jù)庫所在的至少一個數(shù)據(jù)源及其與各數(shù)據(jù)源上的所述數(shù)據(jù)庫的連接配置信息;
[0058]350、通過與各數(shù)據(jù)源唯一對應(yīng)的連接池,根據(jù)連接配置信息建立與各數(shù)據(jù)源上的所述數(shù)據(jù)庫的連接;
[0059]360、根據(jù)建立的映射關(guān)系,將目標(biāo)類實例化后的對象映射為數(shù)據(jù)庫存儲的相應(yīng)集合中的文檔;
[0060]370、對所述文檔執(zhí)行與第一公共接口中的操作函數(shù)相對應(yīng)的操作。
[0061]在本實施例中,可基于服務(wù)平臺上所創(chuàng)建的各個類文件,通過注解的方式建立數(shù)據(jù)庫中集合與各個類之間的映射關(guān)系,而非采用獨立的映射配置文件,有助于增強(qiáng)程序的內(nèi)聚性,且避免了因在程序文件和映射配置文件之間不停的切換帶來的不便,提高了開發(fā)效率。
[0062]下面以一段JAVA代碼,對注解作進(jìn)一步解釋。例如,添加有注解的類LogObject的文件為:
[0063]OEntity (value=,,L0,,,noClassnameStored=true)// 注解:類 LogObject 對應(yīng)的集合名稱為LO
[0064]public class LogObject implements Serializable//聲明類 LogObject
[0065]{
[0066]ild//注解:類LogObject的屬性id直接作為集合的唯一標(biāo)識
[0067]private ObjectId id;//定義類 LogObject 的屬性 id
[0068]OProperty (value=,,content,,)// 注解:類 LogObject 的屬性 1gContent 對應(yīng)集合LO中的字段content
[0069]private String 1gContent;//定義類 LogObject 的屬性 1gContent
[0070]OProperty (value=”time”)// 注解:類 LogObject 的屬性 1gTime 對應(yīng)集合 LO 中的字段time
[0071]private String 1gTime;//定義類 LogObject 的屬性 1gTime
[0072]}[0073]在本實施例中,數(shù)據(jù)庫的配置方式包括單點、主從或集群配置方式。數(shù)據(jù)庫可以屬于不同的數(shù)據(jù)源,即需持久存儲的各個類實例化后的對象同時存放在不同數(shù)據(jù)源上的數(shù)據(jù)庫中,例如同時存放在業(yè)務(wù)服務(wù)器的數(shù)據(jù)庫和日志服務(wù)器上的數(shù)據(jù)庫。連接配置文件記錄著數(shù)據(jù)庫所在的各數(shù)據(jù)源及其與各數(shù)據(jù)源上的所述數(shù)據(jù)庫的連接配置信息(例如數(shù)據(jù)庫的路由地址),當(dāng)然還可記錄各數(shù)據(jù)源上所述數(shù)據(jù)庫的名稱、文檔存儲默認(rèn)集合名稱、圖片存儲默認(rèn)集合名稱、文件存儲默認(rèn)集合名稱和/或文件上傳可支持的文件類型等其他信息。
[0074]在通過解析配置文件,確定完畢數(shù)據(jù)庫所在的各數(shù)據(jù)源及其與數(shù)據(jù)庫的連接配置信息之后,可通過與各數(shù)據(jù)源唯一對應(yīng)的連接池,根據(jù)連接配置信息建立與各數(shù)據(jù)源上的所述數(shù)據(jù)庫的連接。這樣,對于不同的操作請求,只要該請求是對應(yīng)同一個數(shù)據(jù)源上的數(shù)據(jù)庫的,便使用一個連接池,能夠大大提高對數(shù)據(jù)庫的使用效率。
[0075]在以上各個實施例的基礎(chǔ)上,對持久化存儲的對象進(jìn)行操作的方法,可還包括:
[0076]生成包含有操作函數(shù)的第二公共接口,第二公共接口為數(shù)據(jù)庫中各文件對象所共用;
[0077]接收通過調(diào)用第二公共接口的操作函數(shù),發(fā)起的對目標(biāo)文件對象的第二操作請求;
[0078]將目標(biāo)文件對象映射為數(shù)據(jù)庫存儲的相應(yīng)文件,對該文件執(zhí)行與第二公共接口中的操作函數(shù)相對應(yīng)的操作。
[0079]其中,第二公共接口中的操作函數(shù)包括上傳文件函數(shù)、刪除文件函數(shù)和/或獲取文件函數(shù)。
[0080]在以上各個實施例的基礎(chǔ)上,所述數(shù)據(jù)庫可為MongoDB數(shù)據(jù)庫,所述對象可為JAVA對象。
[0081]圖4是本發(fā)明實施例三提供的一種對持久化存儲的對象進(jìn)行操作的裝置的結(jié)構(gòu)示意圖,該裝置的具體結(jié)構(gòu)如下:
[0082]公共接口生成單元410,用于生成包含有操作函數(shù)的第一公共接口,所述第一公共接口為數(shù)據(jù)庫中各個類實例化后的對象所共用;
[0083]操作請求接收單元420,用于接收通過調(diào)用所述第一公共接口的操作函數(shù),發(fā)起的對目標(biāo)類實例化后的對象的第一操作請求;
[0084]數(shù)據(jù)庫連接單元430,用于建立與所述數(shù)據(jù)庫的連接;
[0085]數(shù)據(jù)庫操作單元440,用于將所述目標(biāo)類實例化后的對象映射為所述數(shù)據(jù)庫存儲的相應(yīng)集合中的文檔,對所述文檔執(zhí)行與所述第一公共接口中的操作函數(shù)相對應(yīng)的操作。
[0086]進(jìn)一步的,所述公共接口生成單元410,具體用于根據(jù)模板機(jī)制生成包含有操作函數(shù)的第一公共接口;
[0087]其中,所述操作函數(shù)將各個類名稱定義為一個參數(shù);所述操作函數(shù)包括插入操作函數(shù)、刪除操作函數(shù)、更新操作函數(shù)和/或查詢操作函數(shù)。
[0088]進(jìn)一步的,所述裝置還包括映射建立單元400,用于在所述數(shù)據(jù)庫操作單元440將所述目標(biāo)類實例化后的對象映射為所述數(shù)據(jù)庫存儲的相應(yīng)集合中的文檔之前,通過注解的方式建立所述數(shù)據(jù)庫中集合與各個類之間的映射關(guān)系。
[0089]進(jìn)一步的,所述數(shù)據(jù)庫連接單元430,具體用于:
[0090]通過解析連接配置文件,確定所述數(shù)據(jù)庫所在的至少一個數(shù)據(jù)源及其與各數(shù)據(jù)源上的所述數(shù)據(jù)庫的連接配置信息;
[0091]通過與各數(shù)據(jù)源唯一對應(yīng)的連接池,根據(jù)所述連接配置信息建立與各數(shù)據(jù)源上的所述數(shù)據(jù)庫的連接;
[0092]其中,所述數(shù)據(jù)庫的配置方式包括單點、主從或集群配置方式。
[0093]進(jìn)一步的,所述裝置還包括文件操作單元(未示出),用于:
[0094]生成包含有操作函數(shù)的第二公共接口,所述第二公共接口為數(shù)據(jù)庫中各個文件對象所共用;
[0095]接收通過調(diào)用所述第二公共接口的操作函數(shù),發(fā)起的對目標(biāo)文件對象的第二操作請求;
[0096]將所述目標(biāo)文件對象映射為所述數(shù)據(jù)庫存儲的相應(yīng)文件,對所述文件執(zhí)行與所述第二公共接口中的操作函數(shù)相對應(yīng)的操作;
[0097]其中,所述第二公共接口中的操作函數(shù)包括上傳文件函數(shù)、刪除文件函數(shù)和/或獲取文件函數(shù)。
[0098]在本實施例中,還可在所述裝置中安裝nginx瀏覽器,通過使用該瀏覽器直接打開或者下載數(shù)據(jù)庫中的圖片或文件。
[0099]上述產(chǎn)品可執(zhí)行本發(fā)明任意實施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。
[0100]注意,上述僅為本發(fā)明的較佳實施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領(lǐng)域技術(shù)人員來說能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實施例對本發(fā)明進(jìn)行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。
【權(quán)利要求】
1.一種對持久化存儲的對象進(jìn)行操作方法,其特征在于,包括: 生成包含有操作函數(shù)的第一公共接口,所述第一公共接口為數(shù)據(jù)庫中各個類實例化后的對象所共用; 接收通過調(diào)用所述第一公共接口的操作函數(shù),發(fā)起的對目標(biāo)類實例化后的對象的第一操作請求; 建立與所述數(shù)據(jù)庫的連接; 將所述目標(biāo)類實例化后的對象映射為所述數(shù)據(jù)庫存儲的相應(yīng)集合中的文檔,對所述文檔執(zhí)行與所述第一公共接口中的操作函數(shù)相對應(yīng)的操作。
2.根據(jù)權(quán)利要求1所述的對持久化存儲的對象進(jìn)行操作方法,其特征在于,所述生成包含有操作函數(shù)的第一公共接口,包括: 根據(jù)模板機(jī)制生成包含有操作函數(shù)的第一公共接口; 其中,所述操作函數(shù)將各個類名稱定義為一個參數(shù);所述操作函數(shù)包括插入操作函數(shù)、刪除操作函數(shù)、更新操作函數(shù)和/或查詢操作函數(shù)。
3.根據(jù)權(quán)利要求1所述的對持久化存儲的對象進(jìn)行操作方法,其特征在于,在所述將所述目標(biāo)類實例化后的對象映射為所述數(shù)據(jù)庫存儲的相應(yīng)集合中的文檔之前,還包括:通過注解的方式建立所述數(shù)據(jù)庫中集合與各個類之間的映射關(guān)系。
4.根據(jù)權(quán)利要求1所 述的對持久化存儲的對象進(jìn)行操作方法,其特征在于,所述建立與所述數(shù)據(jù)庫的連接,包括: 通過解析連接配置文件,確定所述數(shù)據(jù)庫所在的至少一個數(shù)據(jù)源及其與各數(shù)據(jù)源上的所述數(shù)據(jù)庫的連接配置信息; 通過與各數(shù)據(jù)源唯一對應(yīng)的連接池,根據(jù)所述連接配置信息建立與各數(shù)據(jù)源上的所述數(shù)據(jù)庫的連接; 其中,所述數(shù)據(jù)庫的配置方式包括單點、主從或集群配置方式。
5.根據(jù)權(quán)利要求1所述的對持久化存儲的對象進(jìn)行操作方法,其特征在于,還包括: 生成包含有操作函數(shù)的第二公共接口,所述第二公共接口為數(shù)據(jù)庫中各個文件對象所共用; 接收通過調(diào)用所述第二公共接口的操作函數(shù),發(fā)起的對目標(biāo)文件對象的第二操作請求; 將所述目標(biāo)文件對象映射為所述數(shù)據(jù)庫存儲的相應(yīng)文件,對所述文件執(zhí)行與所述第二公共接口中的操作函數(shù)相對應(yīng)的操作; 其中,所述第二公共接口中的操作函數(shù)包括上傳文件函數(shù)、刪除文件函數(shù)和/或獲取文件函數(shù)。
6.一種對持久化存儲的對象進(jìn)行操作裝置,其特征在于,包括: 公共接口生成單元,用于生成包含有操作函數(shù)的第一公共接口,所述第一公共接口為數(shù)據(jù)庫中各個類實例化后的對象所共用; 操作請求接收單元,用于接收通過調(diào)用所述第一公共接口的操作函數(shù),發(fā)起的對目標(biāo)類實例化后的對象的第一操作請求; 數(shù)據(jù)庫連接單元,用于建立與所述數(shù)據(jù)庫的連接; 數(shù)據(jù)庫操作單元,用于將所述目標(biāo)類實例化后的對象映射為所述數(shù)據(jù)庫存儲的相應(yīng)集合中的文檔,對所述文檔執(zhí)行與所述第一公共接口中的操作函數(shù)相對應(yīng)的操作。
7.根據(jù)權(quán)利要求6所述的對持久化存儲的對象進(jìn)行操作裝置,其特征在于,所述公共接口生成單元,具體用于根據(jù)模板機(jī)制生成包含有操作函數(shù)的第一公共接口 ; 其中,所述操作函數(shù)將各個類名稱定義為一個參數(shù);所述操作函數(shù)包括插入操作函數(shù)、刪除操作函數(shù)、更新操作函數(shù)和/或查詢操作函數(shù)。
8.根據(jù)權(quán)利要求6所述的對持久化存儲的對象進(jìn)行操作裝置,其特征在于,還包括映射建立單元,用于在所述數(shù)據(jù)庫操作單元將所述目標(biāo)類實例化后的對象映射為所述數(shù)據(jù)庫存儲的相應(yīng)集合中的文檔之前,通過注解的方式建立所述數(shù)據(jù)庫中集合與各個類之間的映身寸關(guān)系。
9.根據(jù)權(quán)利要求6所述的對持久化存儲的對象進(jìn)行操作裝置,其特征在于,所述數(shù)據(jù)庫連接單元,具體用于: 通過解析連接配置文件,確定所述數(shù)據(jù)庫所在的至少一個數(shù)據(jù)源及其與各數(shù)據(jù)源上的所述數(shù)據(jù)庫的連接配置信息; 通過與各數(shù)據(jù)源唯一對應(yīng)的連接池,根據(jù)所述連接配置信息建立與各數(shù)據(jù)源上的所述數(shù)據(jù)庫的連接; 其中,所述數(shù)據(jù)庫的配置方式包括單點、主從或集群配置方式。
10.根據(jù)權(quán)利要求6所述的對持久化存儲的對象進(jìn)行操作裝置,其特征在于,還包括文件操作單元,用于: 生成包含有操作函數(shù)的第二公共接口,所述第二公共接口為數(shù)據(jù)庫中各個文件對象所共用; 接收通過調(diào)用所述第二公共接口的操作函數(shù),發(fā)起的對目標(biāo)文件對象的第二操作請求; 將所述目標(biāo)文件對象映射為所述數(shù)據(jù)庫存儲的相應(yīng)文件,對所述文件執(zhí)行與所述第二公共接口中的操作函數(shù)相對應(yīng) 的操作; 其中,所述第二公共接口中的操作函數(shù)包括上傳文件函數(shù)、刪除文件函數(shù)和/或獲取文件函數(shù)。
【文檔編號】G06F17/30GK103942281SQ201410130803
【公開日】2014年7月23日 申請日期:2014年4月2日 優(yōu)先權(quán)日:2014年4月2日
【發(fā)明者】蔡抒揚(yáng), 王鵬, 胡道生, 夏曙光 申請人:北京中交興路車聯(lián)網(wǎng)科技有限公司