关闭

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

标签: java模板引擎velocitybeanmyeclipse数据库
1922人阅读 评论(1) 收藏 举报
分类:

如果能把项目中大量的代码编写工作变得轻松,是多好的一件事!
在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
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22933次
    • 积分:367
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:0篇
    • 译文:0篇
    • 评论:17条
    文章分类
    最新评论