代碼自動生成的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,尤其涉及一種代碼自動生成的方法和裝置。
【背景技術(shù)】
[0002]Web技術(shù)廣泛的應(yīng)用于各行各業(yè),像電信、銀行、政府、企業(yè)、電商等各行業(yè)的應(yīng)用系統(tǒng)均可通過Web技術(shù)開發(fā)實現(xiàn)。隨著Web項目的規(guī)模越來越龐大,開發(fā)周期越來越長,開發(fā)成本越來越高,人們越來越青睞能夠簡單、快速、自動、智能的進(jìn)行Web項目開發(fā)的自動開發(fā)
λΤΖΖλI 口 ο
[0003]目前已有的自動開發(fā)平臺實現(xiàn)方式主要是通過個人編寫的代碼生成器進(jìn)行代碼的自動生成,即開發(fā)一個代碼生成器,實現(xiàn)按照制定的邏輯自動生成代碼。在進(jìn)行業(yè)務(wù)模塊開發(fā)時,首先選擇一張業(yè)務(wù)主表,作為自動代碼生成的基礎(chǔ);然后通過個人編寫的代碼生成器的已有邏輯對選擇的業(yè)務(wù)主表進(jìn)行自動代碼生成,從而減少手工編寫代碼的工作量。
[0004]現(xiàn)有的自動開發(fā)平臺能夠解決項目開發(fā)中代碼編寫的問題,但是仍具有一定的局限性:
[0005]1.個人編寫的代碼生成器邏輯固定、死板,代碼只有一種生成方式,無法應(yīng)對變化多樣的需求內(nèi)容;
[0006]2.代碼生成器生成的代碼只是通過業(yè)務(wù)主表的字段硬性生成對應(yīng)的代碼內(nèi)容,沒有提供對每個字段進(jìn)行詳細(xì)設(shè)置的功能,生成后的代碼還需要根據(jù)需求進(jìn)行大量修改。
[0007]3.代碼生成器只能對單表進(jìn)行處理,對于多表聯(lián)合查詢的情況無法處理,很難適應(yīng)所有的業(yè)務(wù)場景。
[0008]4.代碼生成器大多結(jié)合Hibernate來實現(xiàn)數(shù)據(jù)的持久化操作,寫法不夠靈活,業(yè)務(wù)需求變更后,進(jìn)行代碼修改時異常復(fù)雜困難。
[0009]5.代碼生成器生成的代碼一般都進(jìn)行了自定義的封裝處理,使用時需要了解對應(yīng)的封裝邏輯,會產(chǎn)生二次學(xué)習(xí)成本。
【發(fā)明內(nèi)容】
[0010]有鑒于此,本發(fā)明提供一種代碼自動生成的方法和裝置,通過編寫復(fù)雜的查詢語言,突破現(xiàn)有技術(shù)中只能針對單表進(jìn)行代碼生成的限制,并可根據(jù)業(yè)務(wù)需求對項目的業(yè)務(wù)模塊進(jìn)行詳細(xì)配置,使生成出來的代碼最大化的符合業(yè)務(wù)需求。
[0011 ]為實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種代碼自動生成的方法。
[0012]本發(fā)明的代碼自動生成的方法包括:根據(jù)業(yè)務(wù)需求新增業(yè)務(wù)模塊,并利用SQL查詢語句配置所述業(yè)務(wù)模塊;將所述業(yè)務(wù)模塊的配置信息保存到數(shù)據(jù)庫中;根據(jù)所述配置信息生成代碼文件。
[0013]可選地,利用SQL查詢語句配置所述業(yè)務(wù)模塊包括:根據(jù)SQL查詢語句生成初始化配置信息,所述初始化配置信息包括:涉及的單表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息;根據(jù)業(yè)務(wù)需求對初始化配置信息進(jìn)行修改。
[0014]可選地,將所述業(yè)務(wù)模塊的配置信息保存到數(shù)據(jù)庫中包括:利用Mybatis持久層框架將所述業(yè)務(wù)模塊的所有配置信息以配置表的形式保存到數(shù)據(jù)庫中。
[0015]可選地,根據(jù)所述配置信息生成代碼文件包括:通過調(diào)用Velocity模板引擎獲取代碼模板,將所述代碼模板與所述業(yè)務(wù)模塊的配置信息結(jié)合生成前臺代碼文件和后臺代碼文件;通過調(diào)用MyBat is Generator文件生成工具,生成MyBat is持久層框架所需的代碼文件。
[0016]可選地,所述方法還包括:當(dāng)業(yè)務(wù)需求變更時,根據(jù)業(yè)務(wù)需求變更的內(nèi)容修改相應(yīng)的配置信息并加以保存;根據(jù)修改后的配置信息選擇需要重新生成的代碼文件,進(jìn)行代碼重新生成。
[0017]可選地,所述方法還包括:當(dāng)所述業(yè)務(wù)模塊開發(fā)完成,不需要再進(jìn)行代碼生成和變更時,鎖定所述業(yè)務(wù)模塊。
[0018]為實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種代碼自動生成的裝置。
[0019]本發(fā)明的代碼自動生成的裝置包括:配置模塊,用于根據(jù)業(yè)務(wù)需求新增業(yè)務(wù)模塊,并利用SQL查詢語句配置所述業(yè)務(wù)模塊;保存模塊,用于將所述業(yè)務(wù)模塊的配置信息保存到數(shù)據(jù)庫中;代碼生成模塊,用于根據(jù)所述配置信息生成代碼文件。
[0020]可選地,所述配置模塊還用于:根據(jù)SQL查詢語句生成初始化配置信息,所述初始化配置信息包括:涉及的單表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息;根據(jù)業(yè)務(wù)需求對初始化配置信息進(jìn)行修改。
[0021]可選地,所述保存模塊還用于:利用Mybatis持久層框架將所述業(yè)務(wù)模塊的所有配置信息以配置表的形式保存到數(shù)據(jù)庫中。
[0022]可選地,所述代碼生成模塊還用于:通過調(diào)用Velocity模板引擎獲取代碼模板,將所述代碼模板與所述業(yè)務(wù)模塊的配置信息結(jié)合生成前臺代碼文件和后臺代碼文件;通過調(diào)用MyBat is Generator文件生成工具,生成MyBat is持久層框架所需的代碼文件。
[0023]可選地,所述裝置還用于:當(dāng)業(yè)務(wù)需求變更時,配置模塊根據(jù)業(yè)務(wù)需求變更的內(nèi)容修改相應(yīng)的配置信息;保存模塊保存修改后的配置信息;代碼生成模塊根據(jù)修改后的配置信息選擇需要重新生成的代碼文件,進(jìn)行代碼重新生成。
[0024]可選地,所述配置模塊還用于:當(dāng)所述業(yè)務(wù)模塊開發(fā)完成,不需要再進(jìn)行代碼生成和變更時,鎖定所述業(yè)務(wù)模塊。
[0025]根據(jù)本發(fā)明的技術(shù)方案,在web項目開發(fā)的過程中,以業(yè)務(wù)模塊為單位,通過配置SQL查詢語句,突破現(xiàn)有技術(shù)中只能進(jìn)行單表代碼生成的限制,從而實現(xiàn)可以處理任何的業(yè)務(wù)邏輯;通過對業(yè)務(wù)模塊各字段的詳細(xì)配置,從而使生成出來的代碼最大化的符合業(yè)務(wù)需求;通過利用Mybatis持久層框架對配置信息以配置表的形式進(jìn)行持久化,從而使得可以處理的業(yè)務(wù)范圍更寬廣,可用性更高,而且生成的代碼易讀性好,修改難度低,方便項目的開發(fā);通過調(diào)用Velocity模板引擎生成代碼文件,實現(xiàn)代碼生成樣式的高度可自定義,從而可以適應(yīng)不同類型的業(yè)務(wù)需求開發(fā);通過利用MyBat is Generator文件生成工具生成MyBat is持久層框架所需的代碼文件,從而可以保證單表公共文件的規(guī)范統(tǒng)一和同MyBatis的結(jié)合,實現(xiàn)對數(shù)據(jù)的持久化操作;此外,由于使用了配置表的方式保存業(yè)務(wù)模塊的配置信息,從而可以在進(jìn)行代碼修改的時候,直接選擇相應(yīng)的配置表進(jìn)行修改,并重新生成對應(yīng)的代碼,實現(xiàn)代碼生成的可控性;在某一業(yè)務(wù)模塊開發(fā)完成后,通過鎖定動作,可以實現(xiàn)對該業(yè)務(wù)模塊的鎖定,以防止生成的代碼因被誤操作而覆蓋。
【附圖說明】
[0026]附圖用于更好地理解本發(fā)明,不構(gòu)成對本發(fā)明的不當(dāng)限定。其中:
[0027]圖1是根據(jù)本發(fā)明實施例的代碼自動生成的方法的主要步驟的示意圖;
[0028]圖2是根據(jù)本發(fā)明實施例的代碼自動生成的裝置的主要模塊的示意圖。
【具體實施方式】
[0029]以下結(jié)合附圖對本發(fā)明的示范性實施例做出說明,其中包括本發(fā)明實施例的各種細(xì)節(jié)以助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識至IJ,可以對這里描述的實施例做出各種改變和修改,而不會背離本發(fā)明的范圍和精神。同樣,為了清楚和簡明,以下的描述中省略了對公知功能和結(jié)構(gòu)的描述。
[0030]圖1是根據(jù)本發(fā)明實施例的代碼自動生成的方法的主要步驟的示意圖。
[0031]如圖1所示,本發(fā)明實施例的代碼自動生成的方法主要包括如下步驟:
[0032]步驟S11:根據(jù)業(yè)務(wù)需求新增業(yè)務(wù)模塊,并利用SQL查詢語句配置所述業(yè)務(wù)模塊。
[0033]步驟S12:將所述業(yè)務(wù)模塊的配置信息保存到數(shù)據(jù)庫中。
[0034]本發(fā)明的技術(shù)方案中,利用開源技術(shù)搭建一web項目自動開發(fā)平臺。其中,主要在MVC 框架(MVC,即 Model View Controller,是模型(model)—視圖(view) —控制器(controller)的縮寫,一種軟件設(shè)計典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改進(jìn)和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯)內(nèi)進(jìn)行項目的開發(fā)。本發(fā)明中主要利用spring MVC框架。SpringMVC框架屬于Spring FrameWork的后續(xù)產(chǎn)品,提供了構(gòu)建Web應(yīng)用程序的全功能MVC模塊。Spring MVC分離了控制器、模型對象、分派器以及處理程序?qū)ο蟮慕巧?br>[0035]本發(fā)明中,根據(jù)業(yè)務(wù)需求對業(yè)務(wù)模塊的新增與配置主要是在SpringMVC框架的展示層進(jìn)行。Spring MVC展示層(即視圖view)的展示技術(shù)可以是基于Jquery語言和JqueryEasy UI展示控件庫的技術(shù)支持。通過Jquery Easy UI提供的組件進(jìn)行頁面布局,通過Jquery提供的前臺JavaScript操作方法實現(xiàn)業(yè)務(wù)邏輯。例如,在開發(fā)一個學(xué)生管理系統(tǒng)的過程中,學(xué)生業(yè)務(wù)模塊的學(xué)生信息表里可能涉及到性別字段,此時,可以通過Jquery提供的前臺JavaScript方法獲取對應(yīng)的性別數(shù)據(jù),再通過Jquery Easy UI的下拉框組件在前臺頁面中顯示性別選項。
[0036]在本發(fā)明的實施例中,we