一種快速數(shù)據(jù)保存方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及JAVA技術(shù)領(lǐng)域,具體涉及一種數(shù)據(jù)保存方法。
【背景技術(shù)】
[0002]目前在java系統(tǒng)開發(fā)過程中,當(dāng)需要將數(shù)據(jù)保存至數(shù)據(jù)庫中時(shí);目前流行的技術(shù)為jdbc、hibernate與ibatis。但三種技術(shù)都存在非常明顯的缺點(diǎn),如jdbc代碼最多,數(shù)據(jù)查詢與結(jié)果封裝都需要寫大量相應(yīng)的代碼。hibernate代碼最少,可以直接操作對象的方式直接操作數(shù)據(jù)庫,但這種方法需要大量的配置文件支持。最后ibatis是一種中間產(chǎn)品,代碼量比jdbc少但比hibernate多,同時(shí)配置比jdbc多而比hibernate少。因此不管使用哪種方式,如果不寫代碼即要增加相應(yīng)的配置,如果不寫配置即要增加大量的代碼,嚴(yán)重影響了開發(fā)的效率。
【發(fā)明內(nèi)容】
[0003]本發(fā)明解決的技術(shù)問題在于提供一種零配置、零開發(fā)的數(shù)據(jù)庫保存方法。
[0004]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
[0005]所述的方法通過翻譯模塊,使用JAVA的反射機(jī)制,將JAVA類拼裝成合法的數(shù)據(jù)庫執(zhí)行語言;系統(tǒng)研發(fā)無需編寫數(shù)據(jù)庫保存代碼,只需要按照規(guī)則編寫相應(yīng)的JAVA類與相關(guān)的屬性;當(dāng)需要保存數(shù)據(jù)時(shí),調(diào)用翻譯模塊;翻譯模塊通過JAVA的反射機(jī)制,將類名與屬性名轉(zhuǎn)化為數(shù)據(jù)庫執(zhí)行語句,并執(zhí)行。
[0006]所述的方法包括如下步驟:
[0007]第I步、在數(shù)據(jù)庫中建立表,User表可包含任意屬性如id和name,其類型分別為int 和 string ;
[0008]第2步、根據(jù)User表,建立JAVA類User,其中JAVA對象User中包含id和name屬性,屬性類型分別為int與string ;
[0009]第3 步,創(chuàng)建 User 類的對象 user,并將 user 賦值:id = l,name=’ 123 ;
[0010]第4步、JAVA調(diào)用數(shù)據(jù)庫操作模塊,并把user作為參數(shù)作入方法體內(nèi);
[0011]第5步、數(shù)據(jù)庫模塊通過JAVA反射機(jī)制,將user對象映射成相應(yīng)的sql語句SI,如 insert into user ;
[0012]第6步、數(shù)據(jù)庫模塊通過反射機(jī)制,遍歷對象user的所有屬性與值,交繼續(xù)拼裝SI,如 insert into user(id,name)values(I,^123);
[0013]第7步、數(shù)據(jù)庫模塊通過jdbc接口,執(zhí)行Si,將數(shù)據(jù)保存至數(shù)據(jù)庫中。
[0014]本發(fā)明的有益效果是:本發(fā)明通過制定相應(yīng)的默認(rèn)規(guī)則,如表名與類名一致,表的字段名和類型與類的屬性名和類型分別一一對應(yīng)。通過的數(shù)據(jù)庫模塊,可以根據(jù)類名、屬性名與值,拼裝成可執(zhí)行的sql語句,再通過執(zhí)行相應(yīng)的sql語句保存數(shù)據(jù)。而且數(shù)據(jù)庫模塊是通用的,只需一次研發(fā)即可。其它功能模塊保存數(shù)據(jù)時(shí),只需調(diào)用數(shù)據(jù)庫模塊,并把要保存的類作為參數(shù)傳入即可。因此,本方法避免了數(shù)據(jù)庫模塊的代碼研發(fā),讓項(xiàng)目組可以把更多的精力放在業(yè)務(wù)邏輯中;而且本方法無需配置、數(shù)據(jù)庫層無需開發(fā)代碼,減少了工作量、提高工作效率。通過翻譯模塊,把數(shù)據(jù)庫層抽象成通用的功能模塊,讓平臺研發(fā)更簡單與清晰。
【附圖說明】
[0015]下面結(jié)合附圖對本發(fā)明進(jìn)一步說明:
[0016]圖1為本發(fā)明的流程圖。
【具體實(shí)施方式】
[0017]如附圖1所示,是數(shù)據(jù)查詢的主要流程圖;包括如下步驟:
[0018]第I步、在數(shù)據(jù)庫中建立表,如User,表可包含任意屬性如id和name,其類型分別為 int 和 string ;
[0019]第2步、根據(jù)User表,建立JAVA類User,其中JAVA對象User中包含id和name屬性,屬性類型分別為int與string ;
[0020]第3 步,創(chuàng)建 User 類的對象 user,并將 user 賦值:id = l,name=’ 123 ;
[0021]第4步、JAVA調(diào)用數(shù)據(jù)庫操作模塊,并把user作為參數(shù)作入方法體內(nèi);
[0022]第5步、數(shù)據(jù)庫模塊通過JAVA反射機(jī)制,將user對象映射成相應(yīng)的sql語句SI,如 insert into user。
[0023]第6步、數(shù)據(jù)庫模塊通過反射機(jī)制,遍歷對象user的所有屬性與值,交繼續(xù)拼裝SI,如 insert into user(id,name)values(I,‘123)。
[0024]第7步、數(shù)據(jù)庫模塊通過jdbc接口,執(zhí)行si,將數(shù)據(jù)保存至數(shù)據(jù)庫中。
【主權(quán)項(xiàng)】
1.一種快速數(shù)據(jù)保存方法,其特征在于:所述的方法通過翻譯模塊,使用JAVA的反射機(jī)制,將JAVA類拼裝成合法的數(shù)據(jù)庫執(zhí)行語言;系統(tǒng)研發(fā)無需編寫數(shù)據(jù)庫保存代碼,只需要按照規(guī)則編寫相應(yīng)的JAVA類與相關(guān)的屬性;當(dāng)需要保存數(shù)據(jù)時(shí),調(diào)用翻譯模塊;翻譯模塊通過JAVA的反射機(jī)制,將類名與屬性名轉(zhuǎn)化為數(shù)據(jù)庫執(zhí)行語句,并執(zhí)行。2.根據(jù)權(quán)利要求1所述的快速數(shù)據(jù)保存方法,其特征在于:所述的方法包括如下步驟: 第I步、在數(shù)據(jù)庫中建立表,User表可包含任意屬性如id和name,其類型分別為int和 string ; 第2步、根據(jù)User表,建立JAVA類User,其中JAVA對象User中包含id和name屬性,屬性類型分別為int與string ; 第3步,倉Il建User類的對象user,并將user賦值:id = I, name =’ 123 ; 第4步、JAVA調(diào)用數(shù)據(jù)庫操作模塊,并把user作為參數(shù)作入方法體內(nèi); 第5步、數(shù)據(jù)庫模塊通過JAVA反射機(jī)制,將user對象映射成相應(yīng)的sql語句SI,如insert into user ; 第6步、數(shù)據(jù)庫模塊通過反射機(jī)制,遍歷對象user的所有屬性與值,交繼續(xù)拼裝SI,如insert into user (id,name) values (1,^ 123); 第7步、數(shù)據(jù)庫模塊通過jdbc接口,執(zhí)行Si,將數(shù)據(jù)保存至數(shù)據(jù)庫中。
【專利摘要】本發(fā)明涉及JAVA技術(shù)領(lǐng)域,具體涉及一種數(shù)據(jù)保存方法。本發(fā)明方法通過java的反射機(jī)制,建立JAVA類與數(shù)據(jù)庫表的關(guān)聯(lián)關(guān)系:將JAVA類名映射至數(shù)據(jù)庫表中;同理,將類的屬性映射至表的字段中,同時(shí)保護(hù)字段的類型與類的屬性類型一致。通過以上兩步即可實(shí)現(xiàn)類與數(shù)據(jù)庫表的對映關(guān)系。通過這種映射,JAVA即可將類的信息直接寫入至數(shù)據(jù)庫中,實(shí)現(xiàn)零配置、零開發(fā)、高效的數(shù)據(jù)保存方式;本發(fā)明的方法可以用于java系統(tǒng)的數(shù)據(jù)保存中。
【IPC分類】G06F17/30
【公開號】CN104881461
【申請?zhí)枴緾N201510267171
【發(fā)明人】關(guān)班記, 季統(tǒng)凱
【申請人】國云科技股份有限公司
【公開日】2015年9月2日
【申請日】2015年5月22日