b項目的開發(fā)以模塊為單位進行,根據(jù)業(yè)務(wù)需求新增業(yè)務(wù)模塊,并對業(yè)務(wù)模塊進行詳細配置。即首先是根據(jù)業(yè)務(wù)需求新增一個業(yè)務(wù)模塊;其次配置SQL查詢語句,根據(jù)配置的SQL查詢語句初始化配置信息,將業(yè)務(wù)模塊所涉及到的單表和字段等的信息獲取出來,此時獲取的信息是業(yè)務(wù)模塊初始化的默認配置信息,包括涉及的單表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息;最后對生成的初始化配置信息根據(jù)業(yè)務(wù)需求進行修改。
[0037]其中對生成的初始化配置信息根據(jù)業(yè)務(wù)需求進行修改包括:配置SQL查詢語句后生成初始化的涉及的單表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息;根據(jù)業(yè)務(wù)需求對初始化的涉及的單表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息進行詳細配置。
[0038]業(yè)務(wù)模塊配置的過程中,需要將業(yè)務(wù)模塊的所有配置信息保存到數(shù)據(jù)庫中。本發(fā)明中,利用Mybatis持久層框架將業(yè)務(wù)模塊的所有配置信息以配置表的形式保存到數(shù)據(jù)庫中。]\^&31^8持久層框架是一個基于加¥3的持久層框架,支持直接編寫891語句,將891語句保存在xml配置文件中,程序直接讀取即可,可以實現(xiàn)任何復(fù)雜的業(yè)務(wù)邏輯處理。而現(xiàn)有技術(shù)是將字段的配置信息寫入代碼中,修改起來不靈活,本發(fā)明中利用Mybatis持久層框架進行配置信息的保存,使得業(yè)務(wù)模塊可處理的業(yè)務(wù)范圍更寬廣,可用性更高,而且生成的代碼易讀性好,在代碼生成后可以根據(jù)業(yè)務(wù)需求對代碼進行修改,并且直接選擇相應(yīng)的配置表對應(yīng)的配置信息進行修改即可,修改難度較利用Hibernate處理復(fù)雜的業(yè)務(wù)的難度降低。
[0039]業(yè)務(wù)模塊的具體配置過程如下所述:
[0040]根據(jù)業(yè)務(wù)需求新增一個模塊。錄入模塊名稱、模塊代碼、開發(fā)人員、后臺文件生成后所在的包路徑、前臺文件生成后所在的文件夾路徑等業(yè)務(wù)模塊基本配置信息。根據(jù)錄入的模塊代碼自動生成前臺文件和后臺文件的文件名稱,并將業(yè)務(wù)模塊基本配置信息保存到數(shù)據(jù)庫的業(yè)務(wù)模塊配置主表中。
[0041]新增業(yè)務(wù)模塊后如果需要對模塊信息進行修改,可以選擇對應(yīng)的模塊信息記錄,通過修改模塊界面進行模塊配置信息的修改。
[0042]新增業(yè)務(wù)模塊完成后,對業(yè)務(wù)模塊進行詳細配置。包括SQL查詢語句配置、涉及表信息配置、Grid基本信息配置、Grid列信息配置、Form基本信息配置、Form列信息配置。
[0043]根據(jù)模塊的業(yè)務(wù)需求整理出查詢語句,并將查詢語句內(nèi)容對應(yīng)錄入到展示層中配置業(yè)務(wù)模塊界面的select語句部分、from語句部分、where語句部分、group by語句部分和order by語句部分等,錄入完成后進行保存。保存過程中開發(fā)平臺對查詢語句進行校驗,校驗查詢語句是否能夠正確執(zhí)行,如不能正確執(zhí)行,則提示進行修改,如能正確執(zhí)行,則利用Mybatis將查詢語句保存到數(shù)據(jù)庫中的業(yè)務(wù)模塊配置主表中的查詢SQL字段中。
[0044]查詢語句保存成功后,對業(yè)務(wù)模塊進行初始化,生成如下初始化配置信息:
[0045]1.根據(jù)配置的業(yè)務(wù)模塊查詢語句獲取出其中所涉及的單表信息,如表名、表別名,并生成單表對應(yīng)的實體類名、實體文件存放的包路徑、SqlMap文件存放的包路徑和Mapper文件存放的包路徑,同時默認設(shè)置單表的是否參與持久化字段的值,最后利用Mybatis將每個單表相關(guān)信息作為一條記錄保存到數(shù)據(jù)庫中的模塊涉及表配置表中;
[0046]i1.在數(shù)據(jù)庫的Grid配置主表中生成一條記錄,默認設(shè)置列表名稱、Grid高度、Grid寬度、每頁行數(shù)、是否單選、是否可編輯等字段信息;
[0047]ii1.根據(jù)查詢語句中所查詢的所有字段信息,在數(shù)據(jù)庫的Grid列配置信息表中為每個字段生成一條記錄信息,生成時自動獲取字段對應(yīng)的字段名稱、字段別名、字段注釋、字段所屬表,自動識別字段是否為主鍵,根據(jù)識別結(jié)果回寫是否顯示和是否可編輯對應(yīng)值,自動判斷字段的類型,根據(jù)字段類型回寫顯示類型、列編輯器參數(shù)、下拉框轉(zhuǎn)碼類型等內(nèi)容;
[0048]iv.在數(shù)據(jù)庫的Form配置主表中生成三條記錄,對應(yīng)三種Form類型,分別為查詢Form、新增Form、修改Form,默認設(shè)置每條記錄的每行列數(shù)、是否顯示、是否生成等字段信息;
[0049]V.根據(jù)查詢語句中所查詢的所有字段信息,在數(shù)據(jù)庫的Form配置詳細表中為查詢Form、新增Form、修改Form三類Form分別生成對應(yīng)的記錄信息。生成時自動獲取字段對應(yīng)的字段名稱、字段別名、字段注釋、字段所屬表,自動識別字段是否為主鍵,根據(jù)識別結(jié)果智能回寫是否顯示和是否可編輯對應(yīng)值,自動判斷字段的類型,根據(jù)字段類型自動回寫顯示類型、前臺校驗規(guī)則、前臺校驗提示信息、查詢類型、下拉框轉(zhuǎn)碼類型等內(nèi)容。
[0050]初始化處理完成后,將初始化信息返回到展示層的操作界面的對應(yīng)列表中,此時可以結(jié)合業(yè)務(wù)需求對初始化信息進行進一步修改,如修改某些單表不進行持久化操作、Grid的高度和寬度、Grid是否可編輯、Grid中的列是否顯示、Grid中的列是否為下拉框和對應(yīng)的轉(zhuǎn)碼類型、查詢Form中那些字段需要顯示、查詢Form中查詢字段的查詢類型,以及新增Form和修改Form中字段校驗規(guī)則和校驗提示信息等。并利用Mybatis持久層框架將修改后的配置信息保存到數(shù)據(jù)庫中。本發(fā)明中用到的數(shù)據(jù)庫例如可以是MySQL(關(guān)系型數(shù)據(jù)庫管理系統(tǒng))數(shù)據(jù)庫。
[0051 ]在將業(yè)務(wù)模塊配置完成,并將配置信息保存到數(shù)據(jù)庫后,從步驟S13開始處理。
[0052]步驟S13:根據(jù)所述配置信息生成代碼文件。
[0053]代碼的生成主要在Spring MVC框架的控制層(控制器controller)中進行。根據(jù)保存在數(shù)據(jù)庫中的配置信息生成代碼文件,包括:通過調(diào)用Velocity模板引擎獲取代碼模板,將所述代碼模板與業(yè)務(wù)模塊的配置信息結(jié)合生成前臺代碼文件和后臺代碼文件;通過調(diào)用MyBat is Generator文件生成工具,生成MyBat is持久層框架所需的代碼文件。
[0054]其中,Velocity模板引擎是一個基于java的模板引擎(template engine)。它允許任何人僅僅使用簡單的模板語言(template language)來引用由java代碼定義的對象。在本發(fā)明中,使用Velocity模板引擎,實現(xiàn)對預(yù)先定義的代碼模板進行自定義。對預(yù)先定義的代碼模板進行自定義可以是:通過對已有的模板進行修改,實現(xiàn)修改后的代碼模板更加符合開發(fā)的業(yè)務(wù)需求;此外,還可以復(fù)制已有模板,在其基礎(chǔ)上重新建立自己的模板。
[0055]開發(fā)平臺調(diào)用Velocity模板引擎,獲取代碼模板,然后將業(yè)務(wù)模塊的配置信息傳入代碼模板中,以替換對應(yīng)的屬性,從而實現(xiàn)將配置數(shù)據(jù)與代碼模板相結(jié)合,從而生成前臺代碼文件和后臺代碼文件。這些文件包括以下內(nèi)容:前臺主界面Main, jsp、前臺主界面Main, js、前臺新增界面Add.jsp、前臺新增界面Add.js、前臺修改界面Update, jsp、前臺修改界面Update.js、后臺Controller.java、后臺 Service 接口 I Service.java、后臺 Service實現(xiàn)類Servicelmpl.java、后臺DAO接口 IDA0.java、后臺DAO實現(xiàn)類DAOImpl.java、后臺業(yè)務(wù)實體BusiEntity.java、后臺業(yè)務(wù)sqlmap文件sqlmap.xml。
[0056]MyBat is Generator是文件生成工具,使用MyBatis Generator文件生成工具生成MyBatis持久層框架所需的文件內(nèi)容,包括查詢SQL中涉及到的單表對應(yīng)的映射文件和實體文件。
[0057]開發(fā)平臺調(diào)用MyBatis Generator文件生成工具,結(jié)合MyBatisGeneratorConf ig.xml配置文件中的配置信息,自動生成所有單表對應(yīng)的MyBat is持久層框架所需的代碼文件,包括以下內(nèi)容:后臺業(yè)務(wù)sqlmap文件sqlmap.xml、后臺單表公共文件 Entity.java 和 Mapper.xml。
[0058]經(jīng)過該步驟的代碼生成,可以實現(xiàn)根據(jù)業(yè)務(wù)模塊的詳細配置信息生成出高度符合業(yè)務(wù)需求的前臺代碼文件、后臺代碼文件和單表公共持久化文件,開發(fā)人員基本不需要再進行代碼修改,即可實現(xiàn)自己的業(yè)務(wù)需求。
[0059]本發(fā)明實施例的代碼自動生成的方法還可以包括:當業(yè)務(wù)需求變更時,根據(jù)業(yè)務(wù)需求修改業(yè)務(wù)模塊相應(yīng)的配置信息并保存;根據(jù)修改后的配置信息選擇需要重新生成的代碼文件,進行代碼重新生成。
[0060]通過開發(fā)平臺自動生成完代碼后,如果業(yè)務(wù)人員提出了需求變更,只需要根據(jù)需求變更內(nèi)容重新進行業(yè)務(wù)模塊的配置,將對應(yīng)的配置信息調(diào)整為符合需求變更后的內(nèi)容,并將變更后的配置信息保存到數(shù)據(jù)庫中,然后選擇需要重新生成的代碼文件進行代碼重新生成。對于不涉及需求變更或已進行過修改的代碼文件,可以不進行選擇,這樣可以實現(xiàn)代碼生成的可控性,防止不需要變動的代碼文件被