新聞中心
java代碼生成器用途
主要功能: 你只要設(shè)計好數(shù)據(jù)庫 就可以生成java vo
成都創(chuàng)新互聯(lián)公司長期為上千多家客戶提供的網(wǎng)站建設(shè)服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為肥東企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計,肥東網(wǎng)站改版等技術(shù)服務。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
java DAO jsp
servlet
struts-config配置信息
oracle 建表語句 查詢語句 等
可生成java struts 架構(gòu)的完整的源碼 包括 增加 刪除 修改 查詢等功能的源碼
但
1.不同的架構(gòu),需要不同的激桐凳生成器
2.生成器一般需要模板技明旅術(shù),如freeMarker、velocity等
3.生成器也是Java項目,可以自己修改、設(shè)計、開發(fā)
4.生成器能節(jié)省一定的工作量
學這個? 網(wǎng)上都有現(xiàn)成的軟件,會用就行,使用很簡單。 如果是想學開發(fā)一個代碼生成器的話,我覺得沒必要啊。
你把JAVA 語言學會了,真正在開發(fā)的時候自然會遇見這個軟件,自然輪纖就會了
java的快速開發(fā)平臺有哪?
JavaFast是渣宴碧一款基于代碼生成器的智能快速開發(fā)平臺,可以幫如舉助解決java項目中80%的重復工作,讓開發(fā)者更多關(guān)注業(yè)務邏輯。既能快速提高開發(fā)效率,幫助公司節(jié)省人力成本,同時不失靈活性??梢詰迷谌魏蜫2EE項目的開發(fā)中,尤其適合企業(yè)信息管理系統(tǒng)(MIS)、內(nèi)部辦祥薯公系統(tǒng)(OA)、企業(yè)資源計劃系統(tǒng)(ERP)、客戶關(guān)系管理系統(tǒng)(CRM)等,基于代碼生成器的開發(fā)方式,可以顯著提高開發(fā)效率70%以上,極大降低開發(fā)成本
java代碼生成器怎么用
zip包,然后自動下載下來
1.預先定義好模板
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()); //當前日期
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”);
}
}
java代碼生成器能生成c語言代碼嗎?用什么方法能實現(xiàn)呢?
按照我的理解,可以的,代碼生成器是跨拍如平臺,而且是跨語言的(至少是跨文本語言的,UML暫時不好說,)。
代碼生成器作為一種開發(fā)工具,一般不直接作為程序的一部分,通常也不直接或間接(如通過AOP)被程序調(diào)用,他是通過編程的方式生成所需要的代碼,然后將生成的代碼作為源文件,復制到開發(fā)工具的代碼區(qū),然后進行編譯。由于代碼生成器是在編譯之前運行的,因此它可以跨語言,你不但可以用代碼嘩賀純生成器生成高級語言,也可以生成匯編語言,甚至機器碼(0、1代碼)。
但編寫代碼生亂咐成器是一個難點,它需要你了解目標編程語言的語法。如果別人已經(jīng)把你需要的代碼生成器寫好了,你只需按要求使用即可,此時就不需要了解目標編程語言的語法。
JNI是通過Java調(diào)用C語言(或其他語言,一般是C),它的實現(xiàn)機制與代碼生成器不同(JNI是通過代碼調(diào)用實現(xiàn)功能,而代碼生成器是生成代碼,復制代碼進行使用),由于C是底層語言,一些底層操作單靠Java無法實現(xiàn),所以才需要JNI。
以上是我對代碼生成器的個人理解,雖然提問時間已過了很久,但依然希望能對你及其他網(wǎng)友有所幫助。
網(wǎng)站題目:有沒有java代碼生成器 java自動生成代碼工具
網(wǎng)頁路徑:http://fisionsoft.com.cn/article/ddpcppi.html