精华内容
下载资源
问答
  • 20个java代码生成框架

    2013-04-09 18:11:10
    20个常用的JAVA代码生成框架,有需要的朋友可以下载查看。
  • Java :: Geci是用于生成Java代码的库。 您可以使用Java :: Geci执行代码生成程序以生成新的源代码或修改现有的Java源文件。 这样,与纯Java相比,程序员可以使用元编程来更短,更富有表现力地表达代码。 框架: ...
  • Java代码生成框架-JavaPoet

    千次阅读 2018-05-06 17:14:49
    介绍 JavaPoet是用于生成.Java源文件的Java API。 当处理诸如注释处理或与元数据文件交互(例如,数据库模式、协议格式)时,源文件生成可能非常有用。通过生成代码,您消除了编写样板文件的需要,同时也保留了元...

    介绍

          JavaPoet是用于生成.Java源文件的Java API。

             当处理诸如注释处理或与元数据文件交互(例如,数据库模式、协议格式)时,源文件生成可能非常有用。通过生成代码,您消除了编写样板文件的需要,同时也保留了元数据的单一来源。


    集成到项目中

        
    <!-- https://mvnrepository.com/artifact/com.squareup/javapoet -->
            <dependency>
                <groupId>com.squareup</groupId>
                <artifactId>javapoet</artifactId>
                <version>1.11.0</version>
            </dependency>


    代码生成

        类

               
            //生成类
            TypeSpec helloWorld=TypeSpec.classBuilder("HelloWorld")
                    .build();
            //Java文件生成
            JavaFile javaFile=JavaFile.builder("com.itcast.lyc",helloWorld).build();
    
            try {
                //把文件内容写入到 窗口打印出来
                javaFile.writeTo(System.out);
            } catch (IOException e) {
                e.printStackTrace();
            }

         生成内容如下:

    package com.itcast.lyc;
    
    class HelloWorld {
    }
    

         方法

               普通的方法列子

            //生成类构造器
            TypeSpec.Builder helloWorldBuilder=TypeSpec.classBuilder("HelloWorld");
    
            MethodSpec main=MethodSpec.methodBuilder("main")//方法的构造器
                    .addParameter(String[].class,"args")//添加参数
                    .returns(void.class)//添加返回值
                    .addStatement("$T.out.println($S)",System.class,"helloWorld")//添加内容
                    .addStatement("$T.out.println($L)",System.class,100L)//显示字符
                    .build();
    
            TypeSpec helloWorld=helloWorldBuilder.addMethod(main).build();
    
            //Java文件生成
            JavaFile javaFile=JavaFile.builder("com.itcast.lyc",helloWorld).build();
    
            try {
                //把文件内容写入到 窗口打印出来
                javaFile.writeTo(System.out);
            } catch (IOException e) {
                e.printStackTrace();
            }

    其中$T代表类的.class类,使用$T和adddStatement匹配能自动导入包,$S表示注入字符串,adddStatement的一种注入字符串格式的语法,会自动帮语句添加分号和换行符,另外还有$L表示数字类型。

    生成代码如下:

    package com.itcast.lyc;
    
    import java.lang.String;
    import java.lang.System;
    
    class HelloWorld {
      void main(String[] args) {
        System.out.println("helloWorld");
        System.out.println(100);
      }
    }

    方法添加代码的方式还有.addCode("asdasds;\n"),但是.addCode不会自动生成分号和换行,所以也不用,还可以这样写.addCode(CodeBlock.builder().addStatement("$S","|sdsad").build())

            控制流

        JavaPoet为生成控制流,给我们提供了便利的API,比如,我们想生成如下内容:

    if (true){
       System.out.println("ok");
    }

    我们很难想像如果让我们自己打印{}括号带来的麻烦,所以JavaPoet在方法构造器中提供了beginControlFlow和endControlFlow。

      MethodSpec main=MethodSpec.methodBuilder("main")//方法的构造器
                    .addParameter(String[].class,"args")//添加参数
                    .returns(void.class)//添加返回值
                    .addStatement("$T.out.println($S)",System.class,"helloWorld")//添加内容
                    .addStatement("$T.out.println($L)",System.class,100L)//显示字符
                    .beginControlFlow("if(true)")//控制流开始
                    .addStatement("$T.out.println($S)",System.class,"ok")
                    .endControlFlow()//控制流结束
                    .build();

    抽象类

     MethodSpec abstractMethon=MethodSpec.methodBuilder("testAbs")
                    .addModifiers(Modifier.PUBLIC,Modifier.ABSTRACT)
                    .build();
    
            TypeSpec typeSpec=TypeSpec.classBuilder("TestAbs")
                    .addModifiers(Modifier.PUBLIC,Modifier.ABSTRACT)
                    .addMethod(abstractMethon)
                    .build();

    接口类

       MethodSpec abstractMethon=MethodSpec.methodBuilder("testInterfaces")
                    .addModifiers(Modifier.PUBLIC,Modifier.ABSTRACT)
                    .build();
    
            TypeSpec typeSpec=TypeSpec.interfaceBuilder("TestInterfaces")
                    .addModifiers(Modifier.PUBLIC)
                    .addField(FieldSpec.builder(String.class,"ONLY_ONCE")
                              .addModifiers(Modifier.PUBLIC,Modifier.STATIC,Modifier.FINAL)
                              .initializer("$S","OKKK")
                              .build())
                    //添加字段
                    .addMethod(abstractMethon)
                    .build();

     构造方法

          //构造方法
            MethodSpec consructorMethod=MethodSpec.constructorBuilder()
                    .addModifiers(Modifier.PUBLIC)
                    .addParameter(Integer.class,"age")//参数
                    .addStatement("this.$N=$N","age","age")//添加样式代码$N表示当前类的引用
                    .build();
    
            TypeSpec helloWorld= helloWorldBuilder
                    .addMethod(main)//添加main方法
                    .addField(FieldSpec.builder(Integer.class,"age").addModifiers(Modifier.PRIVATE).build())//添加字段
                    .addMethod(consructorMethod)//添加构造方法
                    .build();
    

    添加参数

         
    .addParameter(Integer.class,"age")//参数
      
     ParameterizedTypeName parameterizedTypeNameMap=ParameterizedTypeName.get(
                    ClassName.get(Map.class),
                    ClassName.get(Integer.class),
                    ParameterizedTypeName.get(
                            ClassName.get(Class.class),
                            WildcardTypeName.subtypeOf(ClassName.get(Object.class))
                    )
            );
    
            ParameterizedTypeName parameterizedTypeNameList=ParameterizedTypeName.get(
                    ClassName.get(List.class),
                    WildcardTypeName.subtypeOf(ClassName.get(Integer.class))
            );
    
            //添加带参数的方法
            MethodSpec parmMethod=MethodSpec.methodBuilder("welomeBeiJing")
                    .addParameter(String.class,"parm")
                    .addParameter(ParameterSpec.builder(parameterizedTypeNameMap,"map").build())
                    .addParameter(ParameterSpec.builder(parameterizedTypeNameList,"list").build())
                    .build();
    最后生成效果:
     void welomeBeiJing(String parm, Map<Integer, Class<?>> map, List<? extends Integer> list) {
      }
        需要生成通配符的参数 使用 

    .addParameter(ParameterSpec.builder(TypeVariableName.get("T"),"t").build())
    下面引用别人的图 加深理解: 点击打开链接



    添加字段

     .addField(FieldSpec.builder(Integer.class,"age").addModifiers(Modifier.PRIVATE).build())//添加字段

    Enums

    File file=new File(System.getProperty("user.dir"),"\\src\\main\\java");
    
    
            TypeSpec typeSpec=TypeSpec.enumBuilder("EnumsTest")
                    .addModifiers(Modifier.PUBLIC)
                    .addEnumConstant("Rock",TypeSpec.anonymousClassBuilder("$S","Page")
                                .addMethod(MethodSpec.methodBuilder("toString")
                                        .addAnnotation(Override.class)
                                        .addModifiers(Modifier.PUBLIC)
                                        .addStatement("return $S","avalanche")
                                        .returns(String.class)
                                        .build())
                            .build())
                    .addEnumConstant("Sci",TypeSpec.anonymousClassBuilder("$S","ssss").build())
                    .addEnumConstant("Apple",TypeSpec.anonymousClassBuilder("$S","sad").build())
                    .addField(String.class,"hand",Modifier.PRIVATE,Modifier.FINAL)
                    .addMethod(MethodSpec.constructorBuilder()
                              .addParameter(String.class,"hand")
                              .addStatement("this.$N=$N","hand","hand").build())
                    .build();
    
            JavaFile javaFile=JavaFile.builder("com.itcast.lyc.javapoet",typeSpec).build();
    
            javaFile.writeTo(file);
      生成代码:
    package com.itcast.lyc.javapoet;
    
    import java.lang.Override;
    import java.lang.String;
    
    public enum EnumsTest {
      Rock("Page") {
        @Override
        public String toString() {
          return "avalanche";
        }
      },
    
      Sci("ssss"),
    
      Apple("sad");
    
      private final String hand;
    
      EnumsTest(String hand) {
        this.hand=hand;
      }
    }
    枚举类型通过TypeSpec.enumBuilder构造器进行添加枚举类。

    内部类

    TypeSpec comparator = TypeSpec.anonymousClassBuilder("")
        .addSuperinterface(ParameterizedTypeName.get(Comparator.class, String.class))
        .addMethod(MethodSpec.methodBuilder("compare")
            .addAnnotation(Override.class)
            .addModifiers(Modifier.PUBLIC)
            .addParameter(String.class, "a")
            .addParameter(String.class, "b")
            .returns(int.class)
            .addStatement("return $N.length() - $N.length()", "a", "b")
            .build())
        .build();
    
    TypeSpec helloWorld = TypeSpec.classBuilder("HelloWorld")
        .addMethod(MethodSpec.methodBuilder("sortByLength")
            .addParameter(ParameterizedTypeName.get(List.class, String.class), "strings")
            .addStatement("$T.sort($N, $L)", Collections.class, "strings", comparator)
            .build())
        .build();

    得到Java代码

    void sortByLength(List<String> strings) {
      Collections.sort(strings, new Comparator<String>() {
        @Override
        public int compare(String a, String b) {
          return a.length() - b.length();
        }
      });
    }

    内部类构造通过内部类构造方法TypeSpec.anonymousClassBuilder("")初始化内部类,然后使用$L引用对应内部类。


    添加注释

        字段、方法、类都可以添加注释

    MethodSpec dismiss = MethodSpec.methodBuilder("dismiss")
        .addJavadoc("Hides {@code message} from the caller's history. Other\n"
            + "participants in the conversation will continue to see the\n"
            + "message in their own history unless they also delete it.\n")
        .addJavadoc("\n")
        .addJavadoc("<p>Use {@link #delete($T)} to delete the entire\n"
            + "conversation for all participants.\n", Conversation.class)
        .addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
        .addParameter(Message.class, "message")
        .build();

    效果

     /**
       * Hides {@code message} from the caller's history. Other
       * participants in the conversation will continue to see the
       * message in their own history unless they also delete it.
       *
       * <p>Use {@link #delete(Conversation)} to delete the entire
       * conversation for all participants.
       */
      void dismiss(Message message);

    使用$T 引用类。


    添加注解

    使用AnnotationSpec.builder()添加注解:

    MethodSpec logRecord = MethodSpec.methodBuilder("recordEvent")
        .addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
        .addAnnotation(AnnotationSpec.builder(Headers.class)
            .addMember("accept", "$S", "application/json; charset=utf-8")
            .addMember("userAgent", "$S", "Square Cash")
            .build())
        .addParameter(LogRecord.class, "logRecord")
        .returns(LogReceipt.class)
        .build();

    效果

    @Headers(
        accept = "application/json; charset=utf-8",
        userAgent = "Square Cash"
    )
    LogReceipt recordEvent(LogRecord logRecord);

    展开全文
  • java代码框架生成

    2018-05-21 21:23:44
    java代码框架生成器,可以直接生成代码 ,设置好端口,直接生成代码
  • i-doc 项目简介 idoc 是为 java 项目生成项目文档 基于原生的 java 注释尽可能的生成简介的文档用户可以自定义自己的模板生成自己需要的文档 特性 基于 maven 项目生成包含大部分信息的元数据 默认支持 markdown ...
  • 非常好用的代码生成器,最新版,黑马传智播客出品,支持多种代码模板生成,包括前端页面,csdn首发.支持springboot+springdatajpa微服务;ssh+angularjs+bootstrap;ssh+easyui;ssm+dubbox+angularjs等多种模板的代码自动...
  • 代码架构: 经典三层架构(MVC), 增加rpc模块做为调用三方api模块, 增加manager模块设置为缓存层与事务层。
  • JunJava 一个java程序代码自动生产的工具。 针对JavaEE或者是JAVASE,AutoJava能快速的生成可以由目前最流行的结构框架搭建的项目,如Hibernater,Spring,自动组合配置。 通过连接数据库,选择任意数据表生成实体...
  • Java 代码生成

    千次阅读 2015-02-06 14:36:28
    Java web 代码生成 Java Web版,代码生成 项目设想,在项目开发中,我们的开发人员大多数时间都在重复开发 同样的关键字,同样的语法. 但就在这样的情况下还会经常发生语法的错误,而且每个开发人员的代码风格不同. ...

    本文章为引导作用,了解更多请访问 http://blog.csdn.net/lpy3654321/article/details/31841573

    Java web 代码生成

             Java Web版,代码生成 项目设想,在项目开发中,我们的开发人员大多数时间都在重复开发 同样的关键字,同样的语法. 但就在这样的情况下还会经常发生语法的错误,而且每个开发人员的代码风格不同. 其他人员阅读困难.新人的学习成本也会增加.

             这些问题会浪费很多时间,也会影响到开发人员的心情,和程序质量. 由这些问题我想的解决方法是 <代码生成工具> . 代码生成可以解决上述问题,加强约定. 对于普通CRUD的开发效率可以提升50%以上,错误率几乎为0 , 是项目系统的开发利器.

    代码生成 代码生成工具

     

    ssmy_m 代码生成 ,struts2 mybatis spring maven jquery jqgrid jqueryui

    有问题请留言,或QQ110146324

    SVN上的代码基础功能已经都有了.美工没弄,有需要的自己改吧.

    在/ssmy_m/src/main/webapp/common/include_com.jsp里引用.否则代码生成会有影响

     

    DEMO:

    ssmy开发框架SSMyhttp://ssmy_m.goodthink.wang
    ssmy框架的代码生成工具

    http://generate_m.goodthink.wang

    generate_m生成的代码示例https://download.csdn.net/download/lpy3654321/8438605

     

     

     

     

    这是代码生成部分

     

    本文章为引导作用,了解更多请访问 http://blog.csdn.net/lpy3654321/article/details/31841573

     

     

    展开全文
  • Java代码生成工具新版

    热门讨论 2013-07-10 18:02:46
    Java代码生成工具新版 支持Oracle、DB2、SQLServer、MYSQL、数据库。 支持Struts1、Struts2、SpringMvc、Spring、Hibernate3框架。 支持自增主键,复合主键,外键关联。 生成Hibernate POJO类,Dao类,Service类,...
  • 主要介绍了Java的MyBatis框架中Mybatis Generator代码生成器的用法,Mybatis Generator主要被用来生成繁琐的配置文件来提高效率,需要的朋友可以参考下
  • Java框架代码生成工具示例工程.rarJava框架代码生成工具示例工程.rarJava框架代码生成工具示例工程.rarJava框架代码生成工具示例工程.rarJava框架代码生成工具示例工程.rarJava框架代码生成工具示例工程.rarJava框架...
  • ssm框架代码生成器,基于freemarker的模板,模板可以按需自己修改。映射文件,映射器,service接口,service实现,controller控制器均可由本工具生成。如需生成页面文件(jsp,html等)需自己添加模板,对代码稍作...
  • 一直在用的功能超强JAVA代码生成器,SSH2框架代码生成,项目开发利器,强力缩短开发时间支持SQL,MYSQL ORACLE,附带有CDKEY生成器.绝对不后悔!觉得好,请给评论
  • 代码生成框架Velocity

    千次阅读 2008-03-22 00:48:00
    代码生成框架VelocityVelocity是一个基于Java的模板引擎,用户可以使用模板语言VTL来引用由Java代码定义的对象。Velocity通常可以作为动态生成页面而广泛使用,还是一种功能强大的代码生成工具。Velocity模板类似于...

    代码生成框架Velocity


    Velocity是一个基于Java的模板引擎,用户可以使用模板语言VTL来引用由Java代码定义的对象。
    Velocity通常可以作为动态生成页面而广泛使用,还是一种功能强大的代码生成工具。
    Velocity模板类似于JSP文件,当客户端发送请求后,Velocity引擎江根据模板产生动态地页面。如果要使用Velocity生成动态页面,需要扩展VelocityServlet类来实现请求的处理,并通过handleRequest方法返回一个模板变量,Velocity会负责模板到页面的转换。
    它还可以从模板产生SQL脚本、XML及Java代码等。
    1)模板文件
    扩展名为“.vm”,是一个文本文件。
    2)Java程序
    可以为VelocityServlet的子类。
    例:
    (1)helloworld.vm

    ## test  assign
    # set ($ name  =   " gan.shu.man " )
    Employee name: 
    $ gan . shu . man

    ## test condition
    # if ($ name  ==   " gan.shu.man " )
    $ name: very good!!
    # else
    $ name: sorry!!
    # end

    Product information
    ## test circular
    # foreach ($ product in  $ productList )
    $ product . Name     $$ product . Price
    # end

    ## test program  assign
    Total Price: 
    $$ totalPrice

     

    (2)HelloWorldVTL.java

    import  java.io.StringWriter;
    import  java.io.Writer;
    import  java.util.ArrayList;
    import  java.util.Collection;
    import  java.util.Iterator;

    import  org.apache.velocity.Template;
    import  org.apache.velocity.VelocityContext;
    import  org.apache.velocity.app.Velocity;
    public   class  HelloWorldVTL  {
     
    public static void main(String[] args) throws Exception{
      Velocity.init();
      Template template 
    = Velocity.getTemplate("./src/helloworld.vm");
      VelocityContext ctx 
    = new VelocityContext();
      Collection products 
    = new ArrayList();
      products.add(
    new Product("Product 1",12.99));
      products.add(
    new Product("Product 2",13.99));
      products.add(
    new Product("Product 3",11.99));
      ctx.put(
    "productList", products);
      Iterator itr 
    = products.iterator();
      
    double total = 0.00;
      
    while(itr.hasNext()){
       Product p 
    = (Product)itr.next();
       total
    +=p.getPrice();
      }

      ctx.put(
    "totalPrice"new Double(total));
      Writer writer 
    = new StringWriter();
      template.merge(ctx, writer);
      System.out.println(writer.toString());
     }

    }


     

    (3)Product.java

    public   class  Product  {
     
    private String name;
     
    private double price;
     
    public Product(String name, double price) {
      
    super();
      
    this.name = name;
      
    this.price = price;
     }

     
    public String getName() {
      
    return name;
     }

     
    public void setName(String name) {
      
    this.name = name;
     }

     
    public double getPrice() {
      
    return price;
     }

     
    public void setPrice(double price) {
      
    this.price = price;
     }

    }

     

    输出:
    2008-3-10 2:45:12 org.apache.velocity.runtime.log.JdkLogChute log
    信息: FileResourceLoader : adding path '.'
    2008-3-10 2:45:12 org.apache.velocity.runtime.log.JdkLogChute log
    信息: Null reference [template './src/helloworld.vm', line 3, column 16] : $gan.shu.man cannot be resolved.
    Employee name: $gan.shu.man

    gan.shu.man: very good!!

    Product information
    Product 1    $12.99
    Product 2    $13.99
    Product 3    $11.99

    Total Price: $38.97

    3)处理流程:
    使用Velocity生成过程如下:
    (1)初始化模板引擎;
    (2)加载模板文件;
    (3)创建模板上下文;
    (4)给模板变量赋值;
    (5)替换模板中的值生成代码。
    通过模板生成代码是比较好的选择,模板在某种意义上来说就是配置文件的一种,当生成文件内容修改后,用户不需要修改源程序,只需要修改模板文件即可,提高了代码的可维护性。 

    展开全文
  • 【Java开发工具】Generator:Java代码生成工具

    万次阅读 热门讨论 2018-09-14 14:01:52
    在整个项目过程中耗费了不少的时间来构建SpringMVC的重复性代码和Mybatis的映射文件,同时我也越来越觉得这些重复且难度不大的工作不应当充斥于整个项目周期中,于是开始在网上搜寻Java代码生成器,但看了许多都不太...

    欢迎来到 Generator

    写这个代码生成器工具的想法源自2018年3月份,当时项目组刚完成一个Java Web项目的研发工作,在整个项目过程中耗费了不少的时间来构建SpringMVC的重复性代码和Mybatis的映射文件,同时我也越来越觉得这些重复且难度不大的工作不应当充斥于整个项目周期中,于是开始在网上搜寻Java代码生成器,但看了许多都不太满意于是决定自己写一个出来。

    最初的工具是带有简单UI的,虽然使用比较直观,但不易于集成到项目中,往往需要生成代码后再自行复制到项目目录下,这样用起来也比较繁琐,这时大概已经临近5月份了。

    后续参与的项目不再是传统的企业软件,于是耽搁了一阵子,工具也没有再使用,直到8月底的时候,突然想重构一下,于是便有了现在这个工具,希望能帮助到一些同学,抱拳.jpg。

    Generator 是一款基于数据库表生成相应Java代码的工具,代码模板使用当前主流Java框架: Spring, SpringMVC, Mybatis 组织,能够减少繁琐的重复性工作,让开发人员更专注于技术和性能,提高工作效率和编码热情。

    你可以使用Generator:

    • 根据数据库业务表生成实体类
    • 生成包含简单的增、删、查、改操作的Mapper文件
    • 生成Controller、Service、Dao代码

    具体请参考使用手册:Generator-Wiki

    项目地址:Generator:Java代码生成工具 ,走过路过的同学给个start吧,抱拳.jpg。

    博客新地址:www.greedystar.com ,文章会陆续搬到新家,欢迎同学们访问。

    展开全文
  • java 代码生成器 能自动生成sql语句和dao
  • java代码生成工具是一款傻瓜式操作,无需教程的代码生成工具。    java代码生成工具功能特点:  支持oracle、db2、sqlserver、mysql、数据库。  支持struts1、struts2、springmvc、spring、hibernate3框架。...
  • renren代码生成框架,一键生成web service,dao,mapping 映射文件
  • rapid-generator是一个生成器引擎,致力于生成目前主流Java框架的相关代码
  • 最新版java代码生成器基于springMvc+mysql 后台功能一键生成 压缩包里的jdk文件目录 请自行下载jdk1.8.0_45版本并覆盖进去 没有jdk是运行不起来的 也可以下载其他jdk版本 但是jdk1.8.0_45这个文件目录名称不要更改 ...
  • 参考博客:http://blog.csdn.net/u014534808/article/details/78901371,自动生成Java代码,采用SSM框架,包括mapper,xml,service,controller,model
  • Java注解代码生成

    千次阅读 2018-09-26 15:19:04
    Java注解代码生成 最近本着不求甚解的态度重温了一下主流框架的源码,所以趁热打铁的总结一下,学习框架或开发框架所必备的基础知识: Java反射 Java注解 注解代码自动生成 Java动态代理 AOP 简介 在...
  • 1.codeFactory: Java代码生成,依赖rapid-generator.4.0.6.jar, 支持自定义模板生成代码, 弱业务下完全解放体力劳动. 2.ssm模板实现:pojo,dao,daoimpl,service,serviceimpl,controller,各mapper.xml 代码自动生成, 3....
  • 双鱼林java代码生成器是一款为程序员设计的代码生成工具。他是基于SSH框架的struts2 hibernate框架,目前能实现整个项目一次性生成,直接导入myEclipse可以用的,主要包括了struts2和hibernate配置文件自动生成,...
  • 双鱼林java代码生成器是一款为程序员设计的代码生成工具。他是基于SSH框架的struts2 hibernate框架,目前能实现整个项目一次性生成,直接导入myEclipse可以用的,主要包括了struts2和hibernate配置文件自动生成,...
  • 进入正题 我开发了一款java代码生成器 基于SpringMVC + Spring + hibernate框架!生成的项目直接导入myEclipse可以用的 主要包括了SpringMVC,hibernate配置文件自动生成 以及javabean领域层,控制层,业务逻辑层的...
  • java自动生成 框架

    千次阅读 2014-07-20 15:07:43
    基本就完成了,只需写很少量的java代码 [4-5]     http://jueyue.iteye.com/blog/1920604 http://code.google.com/p/jeecg/downloads/list FastUnit  http://www.fastunit.com/ ...
  • java web代码生成

    2020-03-27 20:49:45
    java web开发后台代码自动生成,支持SSH和SSM2大框架,数据库支持MySQL和sqlserver,根据数据库自动生成entity,vo,service,impl,action或者controller,dao,mapper等类,包含常用的增删改查方法,集成了pageheper分页...
  • java代码自动生成工具

    2015-04-17 10:15:00
    java代码自动生成工具,生成的有三大框架的 springmvc的 等

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 394,239
精华内容 157,695
关键字:

java代码生成框架

java 订阅