当前位置:首页 » 编程语言 » java代码自动生成

java代码自动生成

发布时间: 2022-08-22 15:26:25

1. 很多公司开发的java代码,jsp,js都是通过工具自动生成的如ant等

自动化开发工具,我用过,比较着名的有普元,浪潮楼上平台等。
首先,我要纠正下,ANT并不是自动生成代码用的工具;
那些所谓的自动代码生成器根本原理就是根据实现写事先好的模板,再根据你提供的数据库结构,生成一系列的增删改查方法。的确是可以减少程序员的工作量,但是不能包含复杂或者特殊的业务逻辑,否则程序员全都失业了。

2. 怎么样用java代码自动生成不重复的含有数字和字母的随机码

package tests;
/**
* 随机生成32位字符串
*/

public class String32 {
public static String random(int length){//传入的字符串的长度
StringBuilder builder = new StringBuilder(length);
for(int i = 0; i < length; i++){

int r = (int) (Math.random()*3);
int rn1=(int)(48+Math.random()*10);
int rn2=(int)(65+Math.random()*26);
int rn3=(int)(97+Math.random()*26);

switch(r){
case 0:
builder.append((char)rn1);
break;
case 1:
builder.append((char)rn2);
break;
case 2:
builder.append((char)rn3);
break;
}
}
return builder.toString();
}
public static void main(String[] args){
String s = String32.random(32);
System.out.println(s);
}
}

3. java代码生成器怎么用

zip包,然后自动下载下来

1.预先定义好模板

最后放出源代码:

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
* 创建人:Harries
* 创建时间: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(); //表前缀转大写
String zindext = pd.getString(“zindex”); //属性总数
int zindex = 0;
if(null != zindext && !””.equals(zindext)){
zindex = Integer.parseInt(zindext);
}
List<String[]> fieldList = new ArrayList<String[]>(); //属性集合 ========4
for(int i=0; i< zindex; i++){
fieldList.add(pd.getString(“field”+i).split(“,fh,”)); //属性放到集合里面
}

Map<String,Object> root = new HashMap<String,Object>(); //创建数据模型
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数据库脚本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);
Freemarker.printFile(“oracle_SQL_Template.ftl”, root, “oracle数据库脚本/”+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”);

}

}

4. Myeclipse中如何自动生成Java代码啊

myeclipse没有直接的快捷键自动生成构造方法,可以有快捷键弹出source,接着点击自动生成构造方法的菜单。
具体操作如下:工具里快捷键alt+shift+s
就弹出来Generate
Constructor
using
Fields

5. java代码生成dat文件

Filefilename=newFile("F:\zd.dat");

说明:dat可以改成任何扩展名,是自己可以定义的,如下:

publicvoidcreateFile(){

//path表示所创建文件的路径
Stringpath="d:/tr/rt";
Filef=newFile(path);
if(!f.exists()){
f.mkdirs();
}
//fileName表示创建的文件名;为txt类型;
StringfileName="test.txt";
Filefile=newFile(f,fileName);
if(!file.exists()){
try{
file.createNewFile();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}

}
//现在可以在d:/tr/rt目录下找到test.txt文件

6. java 如何自动生成某个数字固定,其余数字随机

自己设置一个方法(或者包装系统的random类,这个更难,不过更专业),下面给你代码:
public
int
getrandomexcept(int
randmax,int[]
exceptnums){
random
rand=new
random();
int
num=rand.nextint(randmax);
while(true){
int
have=0;
for(int
i=0;i<exceptnums.length;i++){
if(num==exceptnums[i]){
have=1;
}
}
if(have==0){
return
num;
}
num=rand.nextint(randmax);
}
}
亲测可用

7. Java springboot + mybatis开发 有什么办法可以根据UML设计图就可自动生成代码IDEA有这功能吗

那要看你的UML工具支不支持代码生成,比如PowerDesigner就支持UML和Java代码间的转换,需要对PowerDesigner进行一定的配置。

8. yaml java代码自动生成 部分类生出不出来

做自动测试时,使用yaml文件做界面要素配置,出现一个问题,经过自己的尝试实现了xpath方式的读取。把代码分项出来。尤其是在使用xpath是,会出现yaml读取出错的情况。此时需要将xpath的内容使用双引号括起来。代码如下

6
logout: type:name value:logoutlogoutConfirm: type:xpath value:"//*[@id='queding']//td/*//button"

来自CODE的代码片
snippet_file_0.txt

读取yaml文件的java代码如下

package com.bfm.utilities;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.util.HashMap;import org.ho.yaml.Yaml;/*该类为获取yaml文件中的内容*/public class YamlReader { private HashMap<String, HashMap<String, String>> yml; @SuppressWarnings("unchecked") public HashMap<String, HashMap<String, String>> getYamlFile(String yamlFile) { File f = new File(yamlFile); try { this.yml = (HashMap<String, HashMap<String, String>>) Yaml.loadType(new FileInputStream(f.getAbsolutePath()), HashMap.class); } catch (FileNotFoundException e) { e.printStackTrace(); } return this.yml; } public static void main (String args[]){ YamlReader yr = new YamlReader(); yr.getYamlFile("E:\\workspace\\bfm\\src\\com\\bfm\\pageElements\\mainPageElements.yaml"); }}

9. 想用java自动生成货品编号的代码,生成规则如下:

那就传分类的参数,去生成呗,,,,,从数据中确定下一个编号

~
~
~

热点内容
matlab遗传算法约束 发布:2025-01-18 15:31:33 浏览:909
果冻java 发布:2025-01-18 15:25:59 浏览:695
电脑与时间服务器同步间隔 发布:2025-01-18 15:21:28 浏览:54
苹果手机apple登录密码在手机哪里 发布:2025-01-18 15:13:43 浏览:380
吃鸡去哪里下手游安卓 发布:2025-01-18 15:10:59 浏览:668
东方财富dk指标源码 发布:2025-01-18 14:45:53 浏览:435
陌陌登陆密码是什么 发布:2025-01-18 14:36:54 浏览:848
海龟编译器代码 发布:2025-01-18 14:16:51 浏览:34
大闸蟹网站源码 发布:2025-01-18 14:12:19 浏览:105
电脑服务器日期怎么改 发布:2025-01-18 14:05:03 浏览:687