java代码生成器--紫枫凝潇烟自主开发的代码生成器

原创 2007年09月12日 11:55:00

如果能把项目中大量的代码编写工作变得轻松,是多好的一件事!
在velocity出现之后,我突然有个想法,利用velocity这个优秀的模板引擎,把开发项目中的重复代码让它自动生成
生成之后的基础代码,按照实际的需求稍作修改便可以运行,极大的提高工作效率。
于是写了这个代码生成工具(代码生成的模板引擎部分是在以前一位同事的代码基础上扩展的)
目前第二版,是读取指定数据种类和数据库的表,把每个表按照模块生成三层结构的代码
包括:bean,controller,service,serviceimpl,dao,daoimpl
缺点与不足在于 与模板文件耦合度较高,模块文件只能在我提供的模板上做少量修改


以前第一版时是读取一个项目中的bean这个包的JavaBean,把每个bean按照模块生成三层结构的代码
而且javaBean要预先使用myeclipse等工具从数据库导出javaBean或者手工写javaBean


使用注意事项:
1.准备好数据库以及JDBC驱动包
2.数据库中建好项目所用的表
3.目前只能使用我提供的示例模板文件(以vm为扩展名的文件),可作少量修改

gavin(张逸轩) QQ 106128696 

部分代码如下

List<String> list = tableNames;
            
if (list == null || list.size() == 0{
                
                
throw new Exception("无法创建Javabean");
            }

            completeStatus 
= false;
            
int listSize = list.size();
            totalFileCount 
= listSize * taskList.size();
            
int taskSize = taskList.size();
            BeanUtil beanUtil 
= new BeanUtil();
            
for(int k=0;k<taskSize;k++){
                
if(threadStatus.equals(ThreadStatus.Stop))
                    
break;
                
while(threadStatus.equals(ThreadStatus.Pause)){
                    Thread.sleep(
100);
                }

                String directoryName 
= "";
                String fileName 
= "";
                directoryName 
= splitDirectory(taskList.get(k)[1], false);
                
for (int i = 0; i < listSize; i++{
                    
if(threadStatus.equals(ThreadStatus.Stop))
                        
break;
                    
while(threadStatus.equals(ThreadStatus.Pause)){
                        Thread.sleep(
100);
                    }

                    String beanFileName 
= list.get(i);
                    VelocityContext context 
= new VelocityContext();
                    context.put(
"name", beanFileName);
                    context.put(
"packageName", taskList.get(k)[1]);
                    
                    
                    
//create Bean
                    if(k==0){
                        List
<FieldInfo> beanFieldList = beanUtil.getBeanInfo(beanFileName);
                        context.put(
"beanFieldList",beanFieldList);
                    }
else{
                        String lowerCaseFileName 
= beanFileName.substring(01)
                                .toLowerCase()
                                
+ beanFileName.substring(1);
                        context.put(
"parameter", lowerCaseFileName);
                        context.put(
"modeName", modeName);
                        context.put(
"pack", bean);
                    }

                    Template template 
= null;
                    template 
= Velocity.getTemplate(taskList.get(k)[0]);
                    fileName 
= directoryName + File.separator + beanFileName + taskList.get(k)[2]
                            
+ ".java";
                    File directoryFile 
= new File(directoryName);
                    
this.out(outPanel, "创建文件:......" + fileName
                            
+ " ");
                    bar.setValue(
1000*(k*listSize+(i+1))/totalFileCount);
                    
if (!directoryFile.exists()) {
                        
this.out(outPanel, "创建目录:......" + directoryFile
                                
+ " ");
                        directoryFile.mkdirs();
                    }

                    BufferedWriter writer 
=  new BufferedWriter(
                            
new FileWriter(fileName));

                    
if (template != null)
                        template.merge(context, writer);

                    writer.flush();
                    writer.close();

                }

            
            }

            
if(threadStatus.equals(ThreadStatus.Run))
                completeStatus 
= true;
这是主要创建部分的代码,其它GUI的代码太多,不便一一列举,代码生成器1.5版Bate版是暂时的稳定版本,欢迎有兴趣的同志们试用,更欢迎提出意见或者建议,下面是下载地址,不过运行需要jdk6
12115326935.rar

Java Web 模板代码生成器的设计与实现

起因 项目中需要根据数据库表写很多Meta、Dao、Service代码,其中很多代码都是重复而繁琐的。因此如果有一个模板代码的生成器,就可以一定程度提高开发效率。 目标 可配置生成J...
  • yeyingss
  • yeyingss
  • 2017年06月12日 09:31
  • 3348

java代码版生成器

楼主的开发环境:      前端:Easyui      数据库:MongoDB      项目框架:SpringMVC 首先下载Freemarker的jar包代码生成器必备jar包:Free...
  • xb12369
  • xb12369
  • 2016年02月26日 17:44
  • 2437

【JAVA实例】代码生成器的原理讲解以及实际使用

原理:利用Freemarker技术,通过java加载Freemarker模板,将前台输入的参数填入模板里面,通过FileZip压缩一个zip包,然后自动下载下来 1.预先定义好模板 ...
  • jxausea
  • jxausea
  • 2016年04月30日 08:09
  • 2070

告别无止境的增删改查:Java代码生成器

告别无止境的增删改查:Java代码生成器 对于一个比较大的业务系统,我们总是无止境的增加,删除,修改,粘贴,复制,想想总让人产生一种抗拒的心里。那有什么办法可以在...
  • u011128978
  • u011128978
  • 2014年11月03日 13:30
  • 2455

推荐一款Java基于最新Spring 4.3.2 集成Hibernate 5.1.0 基于Bootstrap 3.3.7的全自动代码生成器

软件概述:        该套软件是智能代码自动生产系统,拥有该软件你只需要有一套数据库表结构,就可以生产出一套完整的系统代码出来,你可以选择整库生成,你也可以选择某一张表生成,选择一张表生成时可以...
  • Ryan200909
  • Ryan200909
  • 2017年09月15日 14:38
  • 348

加快效率 - 最简单的代码生成器实现

加快效率 - 最简单的代码生成器实现为什么需要代码生成器?当工作中需要频繁复制粘贴来写程序的时候,更好的选择可能是写一个代码生成器来生成基础的内容,然后在此基础上进行修改和完善。复制粘贴虽然简单,但是...
  • isea533
  • isea533
  • 2015年08月21日 10:26
  • 6071

java后台框架 springmvc mybaits 集代码生成器 SSM SSH

获取【下载地址】   QQ: 313596790   【免费支持更新】 支持三大数据库 mysql  oracle  sqlsever   更专业、更强悍、适合不同用户群体 【新录针对本系统的...
  • popso09s89
  • popso09s89
  • 2016年02月18日 11:01
  • 1142

企业级开发的JAVA代码生成器-java快速开发平台源码版

JavaFast是一款基于代码生成器的智能快速开发平台,可以帮助解决java项目中80%的重复工作,让开发者更多关注业务逻辑。 既能快速提高开发效率,帮助公司节省人力成本,同时不失灵活性。 可以应用在...
  • qq_30090163
  • qq_30090163
  • 2017年07月17日 14:45
  • 1047

【代码生成】java-swing代码生成器分享

前言【客户端】采用swing编写代码生成器的故事 四年前我曾经写过一个代码生成器,上面的连接就是了。我当时用的是java,swing和intellij ide来写的。然而事过境迁在我没想到以后还需要...
  • cdnight
  • cdnight
  • 2017年07月09日 10:45
  • 581

20个代码生成器框架

20个代码生成框架 1.1 CodeSmith 一款人气很旺国外的基于模板的dotnet代码生成器 官方网站:http://www.codesmithtools.com 官方论坛:http...
  • PAPALIAN
  • PAPALIAN
  • 2014年03月26日 19:05
  • 15753
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java代码生成器--紫枫凝潇烟自主开发的代码生成器
举报原因:
原因补充:

(最多只允许输入30个字)