国产精品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>

      代碼生成方法及代碼生成裝置與流程

      文檔序號(hào):12157421閱讀:452來(lái)源:國(guó)知局
      代碼生成方法及代碼生成裝置與流程

      本發(fā)明涉及計(jì)算機(jī)軟件技術(shù)領(lǐng)域,具體而言涉及一種代碼生成方法及代碼生成裝置。



      背景技術(shù):

      人們利用計(jì)算機(jī)軟件與硬件實(shí)現(xiàn)辦公自動(dòng)化、管理自動(dòng)化的同時(shí)也在考慮程序代碼的自動(dòng)生成。人們利用計(jì)算機(jī)軟件與硬件實(shí)現(xiàn)辦公自動(dòng)化、管理自動(dòng)化的同時(shí)也在考慮程序代碼的自動(dòng)生成。為了降低軟件開(kāi)發(fā)得強(qiáng)度縮短開(kāi)發(fā)周期減少代碼的重復(fù)書寫,減輕程序員的編程負(fù)擔(dān),現(xiàn)在市面上也有很多代碼生成器出現(xiàn)。

      但是很多代碼生成器一般人只注重程序的編寫速度與質(zhì)量,卻忽略其靈活性。因?yàn)樯纱a的需求各種各樣,而且對(duì)于代碼的質(zhì)量要求也不一致。現(xiàn)有的代碼生成器要么操作方便但只能生成簡(jiǎn)單的代碼。而適用于相對(duì)復(fù)雜的代碼的代碼生成器,它的操作就相對(duì)復(fù)雜。那么,代碼生成器在保證適用各種代碼生成的狀況下還能夠靈活運(yùn)用是需要思考的問(wèn)題。



      技術(shù)實(shí)現(xiàn)要素:

      鑒于此,本發(fā)明實(shí)施例提供一種代碼生成方法與代碼生成裝置,用于解決現(xiàn)有的代碼生成器運(yùn)用不夠靈活的問(wèn)題。

      本發(fā)明實(shí)施例提供的代碼生成方法,包括以下步驟:響應(yīng)用戶請(qǐng)求指令,編輯代碼模板;存儲(chǔ)所述代碼模板;接收用戶輸入的生成所需代碼的基本信息及模板文件路徑,所述基本信息包括代碼輸出路徑、模塊名稱、數(shù)據(jù)庫(kù)類型及選擇的數(shù)據(jù)表信息;根據(jù)所述模板文件路徑,提取對(duì)應(yīng)的代碼模板;根據(jù)所述基本信息及所述提取對(duì)應(yīng)的代碼模板生成代碼。

      可選地,根據(jù)所述基本信息及所述提取對(duì)應(yīng)的代碼模板生代碼還包括以下步驟:將所述數(shù)據(jù)庫(kù)類型及數(shù)據(jù)表信息填充到提取的代碼模板中的相應(yīng)位置,得到所述生成的代碼。

      可選地,數(shù)據(jù)庫(kù)類型為網(wǎng)狀數(shù)據(jù)庫(kù)(Network Database)、關(guān)系數(shù)據(jù)庫(kù)(Relational Database)、樹狀數(shù)據(jù)庫(kù)(Hierarchical Database)、面向?qū)ο髷?shù)據(jù)庫(kù)(Object-oriented Database)中的至少一種。所述關(guān)系數(shù)據(jù)庫(kù)為Oracle、DB2、Sybase、MS SQL Server及MySQL中的至少一種。

      可選地,所述選擇的數(shù)據(jù)表可為多個(gè),多個(gè)選擇的數(shù)據(jù)表生成多個(gè)待生成代碼進(jìn)行合并。

      可選地,所述模板文件路徑也可為根據(jù)所述用戶輸入的數(shù)據(jù)庫(kù)類型自動(dòng)搜索提取。

      本發(fā)明實(shí)施例提供的一種代碼生成裝置,其包括:模板生成單元,用于響應(yīng)用戶請(qǐng)求指令,編輯代碼模板;模板存儲(chǔ)單元,用于存儲(chǔ)所述代碼模板;信息輸入單元,用于接收用戶輸入的生成所需代碼的基本信息及模板文件路徑,所述基本信息包括代碼輸出路徑、模塊名稱、數(shù)據(jù)庫(kù)類型及選擇的數(shù)據(jù)表信息;模板提取單元,根據(jù)所述模板文件路徑,提取所述對(duì)應(yīng)的代碼模板;代碼生成單元,根據(jù)所述基本信息及所述提取對(duì)應(yīng)的代碼模板生成代碼。

      可選地,所述代碼生成單元還用于將所述數(shù)據(jù)庫(kù)類型及數(shù)據(jù)表信息填充到提取的代碼模板中的相應(yīng)位置,得到所述生成的代碼。

      可選地,數(shù)據(jù)庫(kù)類型為網(wǎng)狀數(shù)據(jù)庫(kù)(Network Database)、關(guān)系數(shù)據(jù)庫(kù)(Relational Database)、樹狀數(shù)據(jù)庫(kù)(Hierarchical Database)、面向?qū)ο髷?shù)據(jù)庫(kù)(Object-oriented Database)中的至少一種。所述關(guān)系數(shù)據(jù)庫(kù)為Oracle、DB2、Sybase、MS SQL Server及MySQL中的至少一種。

      可選地,所述選擇的數(shù)據(jù)表可為多個(gè),多個(gè)選擇的數(shù)據(jù)表生成多個(gè)待生成代碼進(jìn)行合并。

      可選地,所述模板文件路徑也可為根據(jù)所述用戶輸入的數(shù)據(jù)庫(kù)類型自動(dòng)搜索提取。

      本發(fā)明所提供的代碼生成方法及代碼生成器能夠適用于不同的代碼需求,避免了針對(duì)每個(gè)代碼需求單獨(dú)制定生成器,可以節(jié)省人力的投入且提升代碼生成的效率。而且上述代碼生成方法及代碼生成器具有普遍適用性,較為靈活。

      附圖說(shuō)明

      圖1是本發(fā)明一實(shí)施例的代碼生成方法的流程示意圖;

      圖2是本發(fā)明一實(shí)施例的代碼生成裝置的結(jié)構(gòu)示意圖;

      圖3是本發(fā)明一實(shí)施例輸入生成代碼的基本信息的示意圖;

      具體實(shí)施方式

      圖1是本發(fā)明一實(shí)施例的代碼生成方法的流程示意圖,代碼生成方法及代碼生成裝置可以自動(dòng)生成代碼,代碼生成方法是一種自動(dòng)轉(zhuǎn)換機(jī)制或者一種由源模型到目標(biāo)模型的映射,它是用工具程序(代碼生成器)生成文檔、界面、程序段等。所述代碼生成方法,包括以下步驟:

      S101,響應(yīng)用戶請(qǐng)求指令,編輯代碼模板;

      在一些實(shí)施例中,代碼模板可以是預(yù)先設(shè)置在系統(tǒng)中的,也可以是用戶通過(guò)系統(tǒng)進(jìn)行自定義配置的,或者是直接從系統(tǒng)外部導(dǎo)入的。

      S103,存儲(chǔ)所述代碼模板;

      在一些實(shí)施例中,所述代碼模板上具有轉(zhuǎn)化模型元素為物理工件的指令。各個(gè)模板的模板結(jié)構(gòu),包括文本指令、分支指令、循環(huán)指令和賦值指令四種。每個(gè)模板具有這四種指令中的一種或多種指令。

      S105,接收用戶輸入的生成所需代碼的基本信息及模板文件路徑,所述基本信息包括代碼輸出路徑、模塊名稱、數(shù)據(jù)庫(kù)類型及選擇的數(shù)據(jù)表信息;

      在一些實(shí)施例中,所述接收用戶輸入基本信息,所述基本信息包括代碼輸出路徑、模塊名稱、數(shù)據(jù)庫(kù)類型及選擇的數(shù)據(jù)表信息。根據(jù)所述用戶選擇的數(shù)據(jù)表獲取數(shù)據(jù)表的關(guān)鍵信息,所述關(guān)鍵信息包括數(shù)據(jù)表的字段名和字段類型。

      所述數(shù)據(jù)庫(kù)類型為網(wǎng)狀數(shù)據(jù)庫(kù)(Network Database)、關(guān)系數(shù)據(jù)庫(kù)(Relational Database)、樹狀數(shù)據(jù)庫(kù)(Hierarchical Database)、面向?qū)ο髷?shù)據(jù)庫(kù)(Object-oriented Database)中的至少一種。

      所述關(guān)系數(shù)據(jù)庫(kù)為Oracle、DB2、Sybase、MS SQL Server及MySQL中的至少一種。

      S107,根據(jù)所述模板文件路徑,提取對(duì)應(yīng)的代碼模板;

      在一些實(shí)施例中,用戶手動(dòng)輸入模板文件路徑,能夠提取對(duì)應(yīng)的代碼模板。上述方法基于數(shù)據(jù)庫(kù)端的單點(diǎn)啟動(dòng)任務(wù)建設(shè),從提交代碼的結(jié)構(gòu)信息到各模板代碼的自動(dòng)生成以及表結(jié)構(gòu)文檔的自動(dòng)化生成,實(shí)現(xiàn)一種輕量級(jí)的代碼生成,貢獻(xiàn)于敏捷開(kāi)發(fā)過(guò)程中的各類程序員,該代碼生成器在于使用的語(yǔ)言很廣,從一個(gè)程序員常規(guī)的前端到后端的常用模板幾乎都是自動(dòng)生成輕量級(jí)模板,讓其選取使用,而不在于某一種代碼做得非常特殊。

      所述模板文件路徑也可為根據(jù)所述用戶輸入的數(shù)據(jù)庫(kù)類型自動(dòng)搜索提取。

      S109,根據(jù)所述基本信息及所述提取對(duì)應(yīng)的代碼模板生成代碼。

      在一些實(shí)施例中,將所述數(shù)據(jù)庫(kù)類型及數(shù)據(jù)表信息填充到提取的代碼模板中的相應(yīng)位置,得到所述生成的代碼。所述選擇數(shù)據(jù)表的關(guān)鍵信息包括數(shù)據(jù)表的字段名和字段類型。將所述數(shù)據(jù)表的信息以及用戶輸入的其他基本信息填充到提取的代碼模板中,得到待生成代碼。其中,代碼模板的填充是基于關(guān)鍵字原則,在關(guān)鍵字內(nèi)容處進(jìn)行相應(yīng)位置的替換,如表名稱、列區(qū)域、注釋區(qū)域等等,在內(nèi)容尚未組裝完成前,他們不會(huì)替換,而是各自按照語(yǔ)法規(guī)則進(jìn)行組裝;另外,代碼模板中的基本屬性和數(shù)據(jù)類型也是基于一個(gè)模板分類來(lái)完成,并最終完成統(tǒng)一的關(guān)鍵字校驗(yàn)、類型定義限制等等。

      在一些實(shí)施例中,所述選擇的數(shù)據(jù)表可為多個(gè),多個(gè)選擇的數(shù)據(jù)表生成多個(gè)待生成代碼進(jìn)行合并。舉例說(shuō)明,將生成的兩個(gè)腳本類代碼Creat Table(1)和Creat Table(2)合并,該步驟可以為MYSQL數(shù)據(jù)庫(kù)中的腳本合并,多個(gè)開(kāi)發(fā)人員以及DBA對(duì)同一個(gè)表操作后,此時(shí)會(huì)對(duì)這類SQL腳本代碼進(jìn)行合并,將對(duì)同一個(gè)表的操作合并在一條SQL腳本代碼中,執(zhí)行的依據(jù)和合并的基礎(chǔ)是變更中產(chǎn)生的表變更和表有一對(duì)多的對(duì)應(yīng)關(guān)系。DBA和開(kāi)發(fā)也可以將腳本類代碼從中導(dǎo)出,使對(duì)應(yīng)的測(cè)試環(huán)境、預(yù)發(fā)環(huán)境、生成環(huán)境等保持一致。

      請(qǐng)參閱圖2,圖2為一實(shí)施例的代碼生成裝置的結(jié)構(gòu)示意圖,所述代碼生成裝置可以安裝在一臺(tái)數(shù)據(jù)處理裝置中,例如計(jì)算機(jī)及服務(wù)器中。代碼生成裝置100包括:

      模板生成單元101,用于響應(yīng)用戶請(qǐng)求指令,編輯代碼模板;

      在一些實(shí)施例中,代碼模板可以是預(yù)先設(shè)置在系統(tǒng)中的,也可以是用戶通過(guò)系統(tǒng)進(jìn)行自定義配置的,或者是直接從系統(tǒng)外部導(dǎo)入的。

      模板存儲(chǔ)單元103,用于存儲(chǔ)所述代碼模板;

      在一些實(shí)施例中,所述代碼存儲(chǔ)單元103可為:智能媒體卡(smart media card)、安全數(shù)字卡(secure digital card)及快閃存儲(chǔ)卡(flash card)等存儲(chǔ)設(shè)備。

      所述模板存儲(chǔ)單元103存儲(chǔ)的代碼模板上具有轉(zhuǎn)化模型元素為物理工件的指令。各個(gè)模板的模板結(jié)構(gòu),包括文本指令、分支指令、循環(huán)指令和賦值指令四種。每個(gè)模板具有這四種指令中的一種或多種指令。

      信息輸入單元105,用于接收用戶輸入的生成所需代碼的基本信息及模板文件路徑,所述基本信息包括代碼輸出路徑、模塊名稱、數(shù)據(jù)庫(kù)類型及選擇的數(shù)據(jù)表信息;

      在一些實(shí)施例中,所述信息輸入單元105,接收用戶輸入基本信息,所述基本信息包括代碼輸出路徑、模塊名稱、數(shù)據(jù)庫(kù)類型及選擇的數(shù)據(jù)表信息。根據(jù)所述用戶選擇的數(shù)據(jù)表獲取數(shù)據(jù)表的關(guān)鍵信息,所述關(guān)鍵信息包括數(shù)據(jù)表的字段名和字段類型。

      所述數(shù)據(jù)庫(kù)類型為網(wǎng)狀數(shù)據(jù)庫(kù)(Network Database)、關(guān)系數(shù)據(jù)庫(kù)(Relational Database)、樹狀數(shù)據(jù)庫(kù)(Hierarchical Database)、面向?qū)ο髷?shù)據(jù)庫(kù)(Object-oriented Database)中的至少一種。網(wǎng)狀數(shù)據(jù)庫(kù)

      所述關(guān)系數(shù)據(jù)庫(kù)為Oracle、DB2、Sybase、MS SQL Server及MySQL中的至少一種。

      模板提取單元107,根據(jù)所述模板文件路徑,提取所述對(duì)應(yīng)的代碼模板;

      在一些實(shí)施例中,所述模板提取單元107根據(jù)用戶手動(dòng)輸入模板文件路徑,提取對(duì)應(yīng)的代碼模板。上述方法基于數(shù)據(jù)庫(kù)端的單點(diǎn)啟動(dòng)任務(wù)建設(shè),從提交代碼的結(jié)構(gòu)信息到各模板代碼的自動(dòng)生成以及表結(jié)構(gòu)文檔的自動(dòng)化生成,實(shí)現(xiàn)一種輕量級(jí)的代碼生成,貢獻(xiàn)于敏捷開(kāi)發(fā)過(guò)程中的各類程序員,該代碼生成器在于使用的語(yǔ)言很廣,從一個(gè)程序員常規(guī)的前端到后端的常用模板幾乎都是自動(dòng)生成輕量級(jí)模板,讓其選取使用,而不在于某一種代碼做得非常特殊。

      所述模板提取單元107根據(jù)所述用戶輸入的數(shù)據(jù)庫(kù)類型自動(dòng)搜索提取。

      代碼生成單元109,根據(jù)所述基本信息及所述提取對(duì)應(yīng)的代碼模板生成代碼。

      在一些實(shí)施例中,所述代碼生成單元109將所述數(shù)據(jù)庫(kù)類型及數(shù)據(jù)表信息填充到提取的代碼模板中的相應(yīng)位置,得到所述生成的代碼。所述選擇數(shù)據(jù)表的關(guān)鍵信息包括數(shù)據(jù)表的字段名和字段類型。代碼生成的過(guò)程中,需要和數(shù)據(jù)庫(kù)對(duì)應(yīng)一次或多次,并且保證命名規(guī)則和數(shù)據(jù)類型的一致性。將所述數(shù)據(jù)表的關(guān)鍵信息以及用戶輸入的基本信息填充到提取的代碼模板中,得到待生成代碼。其中,代碼模板的填充是基于關(guān)鍵字原則,在關(guān)鍵字內(nèi)容處進(jìn)行相應(yīng)位置的替換,如表名稱、列區(qū)域、注釋區(qū)域等等,在內(nèi)容尚未組裝完成前,他們不會(huì)替換,而是各自按照語(yǔ)法規(guī)則進(jìn)行組裝;另外,代碼模板中的基本屬性和數(shù)據(jù)類型也是基于一個(gè)模板分類來(lái)完成,并最終完成統(tǒng)一的關(guān)鍵字校驗(yàn)、類型定義限制等等。

      所述選擇的數(shù)據(jù)表可為多個(gè),多個(gè)選擇的數(shù)據(jù)表生成多個(gè)待生成代碼進(jìn)行合并。舉例說(shuō)明,將生成的兩個(gè)腳本類代碼Creat Table(1) 和Creat Table(2)合并,該步驟可以為MYSQL數(shù)據(jù)庫(kù)中的腳本合并,多個(gè)開(kāi)發(fā)人員以及DBA對(duì)同一個(gè)表操作后,此時(shí)會(huì)對(duì)這類SQL腳本代碼進(jìn)行合并,將對(duì)同一個(gè)表的操作合并在一條SQL腳本代碼中,執(zhí)行的依據(jù)和合并的基礎(chǔ)是變更中產(chǎn)生的表變更和表有一對(duì)多的對(duì)應(yīng)關(guān)系。DBA和開(kāi)發(fā)也可以將腳本類代碼從中導(dǎo)出,使對(duì)應(yīng)的測(cè)試環(huán)境、預(yù)發(fā)環(huán)境、生成環(huán)境等保持一致。

      如圖3所示,為輸入生成代碼的基本信息在代碼生成裝置界面中的顯示效果,在對(duì)應(yīng)處輸入相應(yīng)的信息。

      本實(shí)施例的上述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,即,本發(fā)明實(shí)施例可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),其包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。

      在此基礎(chǔ)上,以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,例如各實(shí)施例之間技術(shù)特征的相互結(jié)合,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。

      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1