myeclipse沒有直接的快捷鍵自動生成構(gòu)造方法,可以有快捷鍵彈出source,接著點擊自動生成構(gòu)造方法的菜單。
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比臨澧網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式臨澧網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋臨澧地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
具體操作如下:工具里快捷鍵alt+shift+s
就彈出來Generate
Constructor
using
Fields
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" 標(biāo)簽,點擊 "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默認(rèn)設(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接口就清爽多了。
zip包,然后自動下載下來
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”);
}
}
1、選擇新建的工程后,點擊右鍵,選擇“Run As”-“Run”,如下圖所示:
2、彈出如下窗口:
3、?在上圖中,左邊選擇“Java Application”后,點擊左上角的新增“”按鈕new configuration,頁面如下圖所示:
4、在上圖中,將“Include libraries when searching for a main class”?勾上,而后點擊“Main class”右邊的“Search”按鈕,彈出窗口如下圖所示:
5、在上圖中輸入WSDL2Java后,查找到axis這個jar包中對應(yīng)類,點擊“OK”按鈕,此時主窗口如下圖所示:
6、在上圖中點擊“Arguments”頁簽,Arguments里把要生成的web service URI或wsdl文件寫進去,最后點run。在下圖中輸入的是wsdl文件的路徑:?????src/wsdl/acd_accessCode_interface.wsdl、src/wsdl/acd_accessCode_service.wsdl:
7、生成的java代碼如下:
是為了生成對應(yīng)的bean嗎?
好幾年前做過類似的,也看過其他類似產(chǎn)品的代碼,基本思路就是遍歷唄。
先通過sql檢索所有的表或view,然后針對每個表遍歷字段,再給字段類型定義個匹配關(guān)系。然后一行行出代碼就行了。。想做的好點,就做個圖形界面,然后把一些選擇的條件(比如package,加不加注解等等)通過圖形界面登錄,就行了。
常用的是StarUML,其他一些UML軟件,如Rational Rose都是可以的,即可正向生成,也可以逆向生成