MyBatis中,可以使用Generator自動(dòng)生成代碼,包括DAO層、 MODEL層 、MAPPING SQL映射文件。
專(zhuān)業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來(lái)客戶和效益!成都創(chuàng)新互聯(lián)公司為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,成都做網(wǎng)站、網(wǎng)站制作負(fù)責(zé)任的成都網(wǎng)站制作公司!
第一步:下載MyBatis的Generator工具
htt p:/ /mybati s.gith ub.i o/generator/
第二步:配置自動(dòng)生成代碼所需的XML配置文件,例如(generator.xml)
將這個(gè)文件保存至你下載的mybatis-generator-core-1.3.2文件夾下
第三步:進(jìn)入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插件的安裝
打開(kāi)eclipse,點(diǎn)擊HelpSoftware Update
選擇 "Available Software" 標(biāo)簽,點(diǎn)擊 "Add Site" 按鈕
輸入以下信息:
Location:htt p:/ /mybatis.googleco de.c om/svn/sub-projects/gen erator/trunk/eclipse/UpdateSite/
點(diǎn)擊ok,自動(dòng)進(jìn)入"mybatis generator Feature"
點(diǎn)擊“install”按鈕進(jìn)行安裝。。。。mybatis generator 插件安裝完成
配置Mybatis Generator不要生成Example類(lèi)
Mybatis Generator默認(rèn)設(shè)置會(huì)生成一大堆羅哩羅嗦的Example類(lèi),主要是用各種不同的條件來(lái)操作數(shù)據(jù)庫(kù),大部分是用不到的,用到的時(shí)候手工修改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接口就清爽多了。
zip包,然后自動(dòng)下載下來(lái)
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;
/**
* 類(lèi)名稱(chēng):FreemarkerController
* 創(chuàng)建人:Harries
* 創(chuàng)建時(shí)間: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”); //類(lèi)名 ========2
String tabletop = pd.getString(“tabletop”); //表前綴 ========3
tabletop = null == tabletop?””:tabletop.toUpperCase(); //表前綴轉(zhuǎn)大寫(xiě)
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); //類(lèi)名
root.put(“objectNameLower”, objectName.toLowerCase()); //類(lèi)名(全小寫(xiě))
root.put(“objectNameUpper”, objectName.toUpperCase()); //類(lèi)名(全大寫(xiě))
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ù)庫(kù)腳本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);
Freemarker.printFile(“oracle_SQL_Template.ftl”, root, “oracle數(shù)據(jù)庫(kù)腳本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);
/*生成jsp頁(yè)面*/
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);
/*生成說(shuō)明文檔*/
Freemarker.printFile(“docTemplate.ftl”, root, “說(shuō)明.doc”, filePath, ftlPath);
//this.print(“oracle_SQL_Template.ftl”, root); 控制臺(tái)打印
/*生成的全部代碼壓縮成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”);
}
}
自動(dòng)代碼編寫(xiě)技術(shù)有許多種,如:
1、利用程序設(shè)計(jì)語(yǔ)言(如C、C++、Java、Python等)編寫(xiě)源程序,通過(guò)一定的編譯器把源程序轉(zhuǎn)換成機(jī)器可執(zhí)行的可執(zhí)行文件。
2、使用圖形流程圖工具、腳本編程語(yǔ)言(如VBS、Jscript等)等方式設(shè)計(jì)程序,將可以有腳本、編程的屬性的應(yīng)用程序自動(dòng)進(jìn)行程序的編寫(xiě)。
3、使用自動(dòng)化編程(如autoCAD/Cam)/機(jī)器學(xué)習(xí)/軟件測(cè)試等,來(lái)自動(dòng)編寫(xiě)程序代碼。
4、使用腳本編程語(yǔ)言(如Python、Perl、Ruby)與模板引擎(如ERB、Smarty),搭建程序模板,讓腳本自動(dòng)根據(jù)模板自動(dòng)生成程序代碼。
5、使用CGI程序,編寫(xiě)嶄新的網(wǎng)頁(yè)應(yīng)用,及使用其框架,自動(dòng)編寫(xiě)程序代碼。
6、使用ASP/JSP等通過(guò)html和java等自動(dòng)編寫(xiě)程序代碼,完成路徑的關(guān)聯(lián)和界面的設(shè)計(jì),實(shí)現(xiàn)自動(dòng)化編程。
7、使用Android應(yīng)用程序/Chrome應(yīng)用程序/IOS應(yīng)用程序、以及網(wǎng)絡(luò)抓取開(kāi)發(fā),快速自動(dòng)編寫(xiě)程序代碼。
8、使用宏編程技術(shù)工具(如AutoHotkey),自動(dòng)完成Windows操作系統(tǒng)之內(nèi)的各類(lèi)操作,實(shí)現(xiàn)智能化的自動(dòng)處理。
9、使用偏好設(shè)置技術(shù),使用Node.js服務(wù)器或者相關(guān)腳本語(yǔ)言,自動(dòng)分析和修改網(wǎng)頁(yè)內(nèi)容,尤其是那些利用AJAX技術(shù)編寫(xiě)的網(wǎng)站,實(shí)現(xiàn)自動(dòng)編程。
10、使用Web Services/Restful APIs、特殊工具/報(bào)表/接口開(kāi)發(fā)工具,自動(dòng)編寫(xiě)程序代碼,尤其是可編輯的報(bào)表,讓程序員不需要自己編寫(xiě)代碼,而直接由工具生成可以用于生產(chǎn)環(huán)境的代碼。
myeclipse沒(méi)有直接的快捷鍵自動(dòng)生成構(gòu)造方法,可以有快捷鍵彈出source,接著點(diǎn)擊自動(dòng)生成構(gòu)造方法的菜單。
具體操作如下:工具里快捷鍵alt+shift+s
就彈出來(lái)Generate
Constructor
using
Fields
分享標(biāo)題:java程序代碼自動(dòng)生成 java自動(dòng)編程
鏈接分享:http://jinyejixie.com/article34/dopcgse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)公司、App開(kāi)發(fā)、關(guān)鍵詞優(yōu)化、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)