zip包,然后自動下載下來
創(chuàng)新互聯(lián)公司專注于新干企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站制作。新干網(wǎng)站建設(shè)公司,為新干等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
1.預(yù)先定義好模板
2.界面輸入相關(guān)參數(shù)
3.解析模板生成代碼并下載
最后放出源代碼:
package com.et.controller.system.createcode;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.et.controller.base.BaseController;
import com.et.util.DelAllFile;
import com.et.util.FileDownload;
import com.et.util.FileZip;
import com.et.util.Freemarker;
import com.et.util.PageData;
import com.et.util.PathUtil;
/**
* 類名稱:FreemarkerController
* 創(chuàng)建人:Harries
* 創(chuàng)建時間:2015年1月12日
* @version
*/
@Controller
@RequestMapping(value=”/createCode”)
public class CreateCodeController extends BaseController {
/**
* 生成代碼
*/
@RequestMapping(value=”/proCode”)
public void proCode(HttpServletResponse response) throws Exception{
PageData pd = new PageData();
pd = this.getPageData();
/* ============================================================================================= */
String packageName = pd.getString(“packageName”); //包名 ========1
String objectName = pd.getString(“objectName”); //類名 ========2
String tabletop = pd.getString(“tabletop”); //表前綴 ========3
tabletop = null == tabletop?””:tabletop.toUpperCase(); //表前綴轉(zhuǎn)大寫
String zindext = pd.getString(“zindex”); //屬性總數(shù)
int zindex = 0;
if(null != zindext !””.equals(zindext)){
zindex = Integer.parseInt(zindext);
}
ListString[] fieldList = new ArrayListString[](); //屬性集合 ========4
for(int i=0; i zindex; i++){
fieldList.add(pd.getString(“field”+i).split(“,fh,”)); //屬性放到集合里面
}
MapString,Object root = new HashMapString,Object(); //創(chuàng)建數(shù)據(jù)模型
root.put(“fieldList”, fieldList);
root.put(“packageName”, packageName); //包名
root.put(“objectName”, objectName); //類名
root.put(“objectNameLower”, objectName.toLowerCase()); //類名(全小寫)
root.put(“objectNameUpper”, objectName.toUpperCase()); //類名(全大寫)
root.put(“tabletop”, tabletop); //表前綴
root.put(“nowDate”, new Date()); //當(dāng)前日期
DelAllFile.delFolder(PathUtil.getClasspath()+”admin/ftl”); //生成代碼前,先清空之前生成的代碼
/* ============================================================================================= */
String filePath = “admin/ftl/code/”; //存放路徑
String ftlPath = “createCode”; //ftl路徑
/*生成controller*/
Freemarker.printFile(“controllerTemplate.ftl”, root, “controller/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName+”Controller.java”, filePath, ftlPath);
/*生成service*/
Freemarker.printFile(“serviceTemplate.ftl”, root, “service/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName+”Service.java”, filePath, ftlPath);
/*生成mybatis xml*/
Freemarker.printFile(“mapperMysqlTemplate.ftl”, root, “mybatis_mysql/”+packageName+”/”+objectName+”Mapper.xml”, filePath, ftlPath);
Freemarker.printFile(“mapperOracleTemplate.ftl”, root, “mybatis_oracle/”+packageName+”/”+objectName+”Mapper.xml”, filePath, ftlPath);
/*生成SQL腳本*/
Freemarker.printFile(“mysql_SQL_Template.ftl”, root, “mysql數(shù)據(jù)庫腳本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);
Freemarker.printFile(“oracle_SQL_Template.ftl”, root, “oracle數(shù)據(jù)庫腳本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);
/*生成jsp頁面*/
Freemarker.printFile(“jsp_list_Template.ftl”, root, “jsp/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName.toLowerCase()+”_list.jsp”, filePath, ftlPath);
Freemarker.printFile(“jsp_edit_Template.ftl”, root, “jsp/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName.toLowerCase()+”_edit.jsp”, filePath, ftlPath);
/*生成說明文檔*/
Freemarker.printFile(“docTemplate.ftl”, root, “說明.doc”, filePath, ftlPath);
//this.print(“oracle_SQL_Template.ftl”, root); 控制臺打印
/*生成的全部代碼壓縮成zip文件*/
FileZip.zip(PathUtil.getClasspath()+”admin/ftl/code”, PathUtil.getClasspath()+”admin/ftl/code.zip”);
/*下載代碼*/
FileDownload.fileDownload(response, PathUtil.getClasspath()+”admin/ftl/code.zip”, “code.zip”);
}
}
MyBatis中,可以使用Generator自動生成代碼,包括DAO層、 MODEL層 、MAPPING SQL映射文件。
第一步:下載MyBatis的Generator工具
htt p:/ /mybati s.gith ub.i o/generator/
第二步:配置自動生成代碼所需的XML配置文件,例如(generator.xml)
將這個文件保存至你下載的mybatis-generator-core-1.3.2文件夾下
第三步:進入XML配置文件(generator.xml)所在的的目錄并執(zhí)行命令:
Dos代碼
java -jar E:\mybatis-generator-core-1.3.2\lib\mybatis-generator-core-1.3.2.j ar -configfile generator.xml -overwrite
mybatis generator eclipse插件的安裝
打開eclipse,點擊HelpSoftware Update
選擇 "Available Software" 標簽,點擊 "Add Site" 按鈕
輸入以下信息:
Location:htt p:/ /mybatis.googleco de.c om/svn/sub-projects/gen erator/trunk/eclipse/UpdateSite/
點擊ok,自動進入"mybatis generator Feature"
點擊“install”按鈕進行安裝。。。。mybatis generator 插件安裝完成
配置Mybatis Generator不要生成Example類
Mybatis Generator默認設(shè)置會生成一大堆羅哩羅嗦的Example類,主要是用各種不同的條件來操作數(shù)據(jù)庫,大部分是用不到的,用到的時候手工修改mapper和接口文件就行了。
/codetable
schema="general"
tableName="tb_table_name"
domainObjectName="EntityName"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"
name="useActualColumnNames"
value="true"/
//codetable
這樣生成的mapper和dao接口就清爽多了。
自動代碼編寫技術(shù)有許多種,如:
1、利用程序設(shè)計語言(如C、C++、Java、Python等)編寫源程序,通過一定的編譯器把源程序轉(zhuǎn)換成機器可執(zhí)行的可執(zhí)行文件。
2、使用圖形流程圖工具、腳本編程語言(如VBS、Jscript等)等方式設(shè)計程序,將可以有腳本、編程的屬性的應(yīng)用程序自動進行程序的編寫。
3、使用自動化編程(如autoCAD/Cam)/機器學(xué)習(xí)/軟件測試等,來自動編寫程序代碼。
4、使用腳本編程語言(如Python、Perl、Ruby)與模板引擎(如ERB、Smarty),搭建程序模板,讓腳本自動根據(jù)模板自動生成程序代碼。
5、使用CGI程序,編寫嶄新的網(wǎng)頁應(yīng)用,及使用其框架,自動編寫程序代碼。
6、使用ASP/JSP等通過html和java等自動編寫程序代碼,完成路徑的關(guān)聯(lián)和界面的設(shè)計,實現(xiàn)自動化編程。
7、使用Android應(yīng)用程序/Chrome應(yīng)用程序/IOS應(yīng)用程序、以及網(wǎng)絡(luò)抓取開發(fā),快速自動編寫程序代碼。
8、使用宏編程技術(shù)工具(如AutoHotkey),自動完成Windows操作系統(tǒng)之內(nèi)的各類操作,實現(xiàn)智能化的自動處理。
9、使用偏好設(shè)置技術(shù),使用Node.js服務(wù)器或者相關(guān)腳本語言,自動分析和修改網(wǎng)頁內(nèi)容,尤其是那些利用AJAX技術(shù)編寫的網(wǎng)站,實現(xiàn)自動編程。
10、使用Web Services/Restful APIs、特殊工具/報表/接口開發(fā)工具,自動編寫程序代碼,尤其是可編輯的報表,讓程序員不需要自己編寫代碼,而直接由工具生成可以用于生產(chǎn)環(huán)境的代碼。
myeclipse沒有直接的快捷鍵自動生成構(gòu)造方法,可以有快捷鍵彈出source,接著點擊自動生成構(gòu)造方法的菜單。
具體操作如下:工具里快捷鍵alt+shift+s
就彈出來Generate
Constructor
using
Fields