精华内容
下载资源
问答
  • 自动生成java代码

    2018-04-23 21:40:21
    利用freemarker生成MVC代码,避免做大量重复的复制黏贴替换工作,更专注在业务代码实现和难度更大的技术问题上,提高工作效率
  • 可以读取PowerDesigner的PDB文件,自动生成“增删改查”,可单独生成,可一键生成全部; 可以读取数据库,自动生成各种方法; (读取PD文件,可自动生成注释) PS:如有需求,可另定做。 在开发中很方便实用。
  • 主要实现在对应数据库中表的基类代码自动生成,包括生成属性、添加、修改、删除、查询、存在性、Model 类构造等基础代码片断,支持不同3种架构代码生成,使程序员可以节省大量机械录入的时间和重复劳动,而将精力...
  • ibaties自动生成代码

    2014-04-16 20:23:43
    ibaties自动生成代码(超轻量级) 基本增删改查 让你只用专注业务
  • java程序小白也能学会的mybatis-plus逆向自动生成全套代码 1.在你的SpringBoot项目下新建子模块项目 ps:名称随意,最好带上generator 来辨别这是代码自动生成模块 2.在此模块下新建一个包与一个java类 类名: Code...

    java程序小白也能学会的mybatis-plus逆向自动生成全套代码

    1.在你的SpringBoot项目下新建子模块项目

    pom.xml添加以下依赖:

    <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>3.3.2</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-extension</artifactId>
                <version>3.3.2</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-freemarker</artifactId>
                <version>2.3.1.RELEASE</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    

    ps:名称随意,最好带上generator 来辨别这是代码自动生成模块
    在这里插入图片描述

    2.在此模块下新建一个包与一个java类 类名: CodeGenerator

    在这里插入图片描述

    完整代码如下:

    import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
    import com.baomidou.mybatisplus.core.toolkit.StringPool;
    import com.baomidou.mybatisplus.core.toolkit.StringUtils;
    import com.baomidou.mybatisplus.generator.AutoGenerator;
    import com.baomidou.mybatisplus.generator.InjectionConfig;
    import com.baomidou.mybatisplus.generator.config.*;
    import com.baomidou.mybatisplus.generator.config.po.TableInfo;
    import com.baomidou.mybatisplus.generator.config.rules.DateType;
    import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    /**
     * @Description: 代码生成类
     */
    public class CodeGenerator {
        //数据库连接参数
        public static String driver = "com.mysql.cj.jdbc.Driver";
        public static String url = "jdbc:mysql://localhost:3306/rht_test?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true";
        public static String username="root";
        public static String password="123456";
        //父级别包名称
        public static String parentPackage = "cn.rht";
        //代码生成的目标路径
        public static String generateTo = "/rht-generator/src/main/java";
        //mapper.xml的生成路径
        public static String mapperXmlPath = "/rht-generator/src/main/resources/mapper";
        //控制器的公共基类,用于抽象控制器的公共方法,null值表示没有父类
        public static String baseControllerClassName ;
        //业务层的公共基类,用于抽象公共方法
        public static String baseServiceClassName ;
        //作者名
        public static String author = "rht.cn";
        //模块名称,用于组成包名
        public static String modelName = "portal";
        //Mapper接口的模板文件,不用写后缀 .ftl
        public static String mapperTempalte = "/ftl/mapper.java";
    
        /**
         * <p>
         * 读取控制台内容
         * </p>
         */
        public static String scanner(String tip) {
            Scanner scanner = new Scanner(System.in);
            StringBuilder help = new StringBuilder();
            help.append("请输入" + tip + ":");
            System.out.println(help.toString());
            if (scanner.hasNext()) {
                String ipt = scanner.next();
                if (StringUtils.isNotEmpty(ipt)) {
                    return ipt;
                }
            }
            throw new MybatisPlusException("请输入正确的" + tip + "!");
        }
    
        /**
         * RUN THIS
         */
        public static void main(String[] args) {
            // 代码生成器
            AutoGenerator mpg = new AutoGenerator();
    
            // 全局配置
            GlobalConfig gc = new GlobalConfig();
            String projectPath = System.getProperty("user.dir");
            gc.setOutputDir(projectPath + generateTo);
            gc.setAuthor(author);
            gc.setOpen(false);
            //设置时间类型为Date
            gc.setDateType(DateType.TIME_PACK);
            //开启swagger
            //gc.setSwagger2(true);
            //设置mapper.xml的resultMap
            gc.setBaseResultMap(true);
            mpg.setGlobalConfig(gc);
    
            // 数据源配置
            DataSourceConfig dsc = new DataSourceConfig();
            dsc.setUrl(url);
            // dsc.setSchemaName("public");
            dsc.setDriverName(driver);
            dsc.setUsername(username);
            dsc.setPassword(password);
            mpg.setDataSource(dsc);
    
            // 包配置
            PackageConfig pc = new PackageConfig();
            pc.setEntity("model");
            //pc.setModuleName(scanner("模块名"));
            pc.setModuleName(modelName);
            pc.setParent(parentPackage);
            mpg.setPackageInfo(pc);
    
            // 自定义配置
            InjectionConfig cfg = new InjectionConfig() {
                @Override
                public void initMap() {
                    // to do nothing
                }
            };
            List<FileOutConfig> focList = new ArrayList<>();
            focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
                @Override
                public String outputFile(TableInfo tableInfo) {
                    // 自定义输入文件名称
                    return projectPath + mapperXmlPath
                            + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
                }
            });
            cfg.setFileOutConfigList(focList);
            mpg.setCfg(cfg);
            mpg.setTemplate(new TemplateConfig().setXml(null));
            mpg.setTemplate(new TemplateConfig().setMapper(mapperTempalte));
    
            // 策略配置
            StrategyConfig strategy = new StrategyConfig();
            strategy.setNaming(NamingStrategy.underline_to_camel);
            //字段驼峰命名
            strategy.setColumnNaming(NamingStrategy.underline_to_camel);
            //设置实体类的lombok
            strategy.setEntityLombokModel(true);
            //设置controller的父类
            if (baseControllerClassName!=null) strategy.setSuperControllerClass(baseControllerClassName);
            //设置服务类的父类
            if (baseServiceClassName !=null ) strategy.setSuperServiceImplClass(baseServiceClassName);
            // strategy.
            //设置实体类属性对应表字段的注解
            strategy.setEntityTableFieldAnnotationEnable(true);
            //设置表名
            String tableName = scanner("表名, all全部表");
            if(! "all".equalsIgnoreCase(tableName)){
                strategy.setInclude(tableName);
            }
    
            strategy.setTablePrefix(pc.getModuleName() + "_");
            strategy.setRestControllerStyle(true);
            mpg.setStrategy(strategy);
    
            // 选择 freemarker 引擎需要指定如下加,注意 pom 依赖必须有!
            mpg.setTemplateEngine(new FreemarkerTemplateEngine());
            mpg.execute();
        }
    
    }
    

    3.在 resources 下新建 文件夹,用来存放 mapper文件

    新建模板文件: mapper.java.ftl
    在这里插入图片描述

    在这里插入图片描述
    模板完整代码如下:

    package ${package.Mapper};
    
    import ${package.Entity}.${entity};
    import ${superMapperClassPackage};
    import org.springframework.stereotype.Repository;
    
    /**
     * <p>
     * ${table.comment!} Mapper 接口
     * </p>
     *
     * @author ${author}
     * @since ${date}
     */
    <#if kotlin>
    interface ${table.mapperName} : ${superMapperClass}<${entity}>
    <#else>
    @Repository
    public interface ${table.mapperName} extends ${superMapperClass}<${entity}> {
    
    }
    </#if>
    

    4.配置CodeGenerator类

    ps:请根据自己实际路径配置
    在这里插入图片描述

    5.启动代码生成类main方法

    ps:输入all 将会自动生成配置数据库下的所有配置文件,或者直接输入单表名称生成某一个表的Controller,mapper,service,model层与mapper.xml文件

    在这里插入图片描述
    下面是我输入表名为:user,自动生成的部分文件信息展示
    在这里插入图片描述
    User实体类
    在这里插入图片描述
    UserMapper.xml文件
    在这里插入图片描述
    如果你有很多表要生成时,但又不想全部生成时,可以在CodeGenerator类代码中134行代码

     //设置表名
            String tableName = scanner("表名, all全部表");
            if(! "all".equalsIgnoreCase(tableName)){
                strategy.setInclude(tableName);
            }
    

    替换为:

    String[] tableNames = {"user","dept"};//数据库表名的集合
    for (int i = 0; i <tableNames.length ; i++) {
        strategy.setInclude(tableNames);
    }
    

    来生成自己想要生成的文件

    6.删除文件

    最后:也是重要的一点,在您将这些文件复制到了项目模块上的时候,留下CodeGenerator类与文件夹下的mapper.java.ftl配置,其他生成的请及时删除

    至于原因是将来业务拓展后,数据库新增表后,只要新创建表的文件,如果不删除以前生成过的文件,到时候找起来比较麻烦,没必要给自己添这层麻烦

    在这里插入图片描述
    好了,这篇文章就到这里啦,这篇文章对你有帮助欢迎点赞转发,支持一下博主,有什么问题的话也可以留言,或者私信哈!

    展开全文
  • 自动化测试代码自动生成

    千次阅读 2015-06-30 10:36:32
    自动化测试代码自动生成一、界面展示 我们来看看可视化的代码自动化生成界面设计, 二、字段用途解释 选择目标测试类 指: 需要生成代码所要依据的接口类名称。 备注: 这个是使用的文件上传,自动载入接口...

    自动化测试代码的自动生成


    一、界面展示

    我们来看看可视化的代码自动化生成界面设计,

    自动化测试脚本自动生成页面


    二、字段用途解释

    • 选择目标测试类

      指: 需要生成代码所要依据的接口类名称。

      备注: 这个是使用的文件上传,自动载入接口类名。

    • 本地的测试工程

      指:需要生成代码的路径地址。

      备注: 默认是生成在项目空间的java代码资源路径。

    • 脚本使用的模板

      指: 自动生成的脚本的代码所使用的模板样式。

      备注: 一般是会根据正常场景和异常场景进行区分。

    • 脚本使用的名称

      指: 这个是代码生成后的一个名称(类名)

      备注:类名称_检查点描述_用例的类型

    • 新建的脚本类型:

      指: 正常测试还是异常测试。

      备注: 这个是和模板配合使用的。

    • 脚本使用的编号

      指: 脚本测试数据的编号

      备注: 用于在执行的时候区分用例。

    • 脚本描述

      指: 脚本的描述,测试检查点,业务描述等。

    • 参数列表

      指: 根据类进行联动生成的。


    三、代码展示

    • 代码(0)
        @RequestMapping(value = "/genScript.form", method = RequestMethod.POST)
        public ModelAndView genScript(HttpServletRequest request) {
            String className = request.getParameter("oClass");
            String oProject = request.getParameter("oProject");
            String oTemplet = request.getParameter("oTemplet");
            String oMethodName = request.getParameter("oMethodName");
            String oType = request.getParameter("oType");
            String oNo = request.getParameter("oNo");
            String oDesc = request.getParameter("oDesc");
            String oNumber = request.getParameter("oNumber");
            String oParaList = request.getParameter("oParaList");
            Boolean oBoolean = new TestCaseCGenerator().genScript(mav, className,
                    oProject, oTemplet, oType, oNo, oDesc, oNumber, oParaList,oMethodName);
            oSharedDateUtil.shareDate(doMapper, user, cj_awardsDO, mav);
            //设置跳转页面
            mav.addObject("jspContent", "res.jsp");
            mav.addObject("result", oBoolean);
            //添加页面标题
            mav.addObject("title", "首-页");
            //页面业务处理--单独的方法处理
            return mav;
        }
    • 代码(1)
    /**   
        *    
        * 方法名称:genScript   
        * 方法描述:  
        * 参数列表:@param mav
        * 参数列表:@param className
        * 参数列表:@param oProject
        * 参数列表:@param tempter
        * 参数列表:@param oType
        * 参数列表:@param oNo
        * 参数列表:@param oDesc
        * 参数列表:@param oNumber
        * 参数列表:@param paramas
        * 参数列表:@param oMethodName
        * 参数列表:@return
        * 返  回  值:Boolean 
        * 创  建  人:   
        * 创建时间:2015年6月29日 下午4:10:54   
        * 修  改  人:   
        * 修改时间:2015年6月29日 下午4:10:54   
        * 修改备注:   
        * @version  
        * @throws  
        *    
        */ 
        public Boolean genScript(ModelAndView mav, String className,
                String oProject, String tempter, String oType, String oNo,
                String oDesc, String oNumber, String paramas, String oMethodName) {
            VelocityEngine ve = new VelocityEngine();
            ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
            ve.setProperty("classpath.resource.loader.class",
                    ClasspathResourceLoader.class.getName());
            ve.setProperty(RuntimeConstants.INPUT_ENCODING, "utf-8"); // 输入编码格式设置
            ve.setProperty(RuntimeConstants.OUTPUT_ENCODING, "utf-8"); // 输出编码格式设置
            ve.init();
            Template actionTpt = ve.getTemplate(tempter);
            Template csv = ve.getTemplate("csv.vm");
            VelocityContext ctx = new VelocityContext();
            String[] oCls = className.split(":");
            String str = oCls[1];
            String str1 = lowToUpperCase(str);
            String oName = str1 + "_" + oCls[0] + "_" + oMethodName + "_" + oType;
            mav.addObject("name", oName);
            String tcDir = str1 + "_" + oCls[0];
            ctx.put("classNameUpCase", tcDir);
            ctx.put("oDesc", oDesc);
            ctx.put("oNo", oNo);
            ctx.put("subId", oCls[0]);
            String oTcMethodName = oCls[1] + "_" + oMethodName;
            ctx.put("classNameLowCase", oTcMethodName);
            ctx.put("methodParamsName", paramas);
            String[] arr = paramas.split(",");
            ArrayList<String> newArr = new ArrayList<String>();
            for (int i = 0; i < arr.length; i++) {
                if ( !StringUtils.equals(arr[i], "user_token")) {
                    newArr.add(arr[i]);
                }
            }
            String csvParamsList = "";
            String methodParamsList = "";
            if (!newArr.isEmpty()) {
                String st = newArr.toString();
                String oParamas = (String) st.subSequence(1, (st.length()) - 1);
                methodParamsList = " ,String " + oParamas.replace(",", ",String ");
                csvParamsList=" , "+oParamas;
            }
            ctx.put("csvParamsList", csvParamsList);
            ctx.put("methodParamsList", methodParamsList);
            ctx.put("testCaseDesc", oDesc);
            ctx.put("oMethodName", oMethodName);
            ctx.put("oType", oType);
            return excue(mav, actionTpt, csv, ctx, oType, oProject, oMethodName,
                    tcDir, oTcMethodName);
        }        
    • 代码(二)
    /**   
        *    
        * 方法名称:excue   
        * 方法描述:  
        * 参数列表:@param mav
        * 参数列表:@param actionTpt
        * 参数列表:@param csv
        * 参数列表:@param ctx
        * 参数列表:@param oNormal
        * 参数列表:@param oProject
        * 参数列表:@param oMethodName
        * 参数列表:@param tcDir
        * 参数列表:@param oTcMethodName
        * 参数列表:@return
        * 返  回  值:boolean 
        * 创  建  人:   
        * 创建时间:2015年6月29日 下午4:11:24   
        * 修  改  人:   
        * 修改时间:2015年6月29日 下午4:11:24   
        * 修改备注:   
        * @version  
        * @throws  
        *    
        */ 
        private static boolean excue(ModelAndView mav, Template actionTpt,
                Template csv, VelocityContext ctx, String oNormal, String oProject,
                String oMethodName, String tcDir, String oTcMethodName) {
            Boolean flag = false;
    
            String csvPath = oProject + "\\src\\main\\resources\\TestCase-Data\\"
                    + tcDir + "_" + oMethodName + "\\" + oNormal;
            createDir(csvPath);
            csvPath = csvPath + "/" + oTcMethodName + ".csv";
            String javaPath = oProject
                    + "\\src\\main\\java\\com\\homs\\ats\\TestSctipts\\" + tcDir
                    + "\\";
            createDir(javaPath);
            javaPath = javaPath + "/" + tcDir + "_" + oMethodName + "_" + oNormal
                    + ".java";
            boolean b1 = merge(csv, ctx, csvPath);
            boolean b2 = merge(actionTpt, ctx, javaPath);
            if (b1 & b2) {
                flag = true;
            }
            mav.addObject("javaPath", javaPath);
            mav.addObject("csvPath", csvPath);
            return flag;
        }
    • 代码(三)
    /**   
        *    
        * 方法名称:lowToUpperCase   
        * 方法描述:  首字母大写
        * 参数列表:@param str
        * 参数列表:@return
        * 返  回  值:String 
        * 创  建  人:ligang13009   
        * 创建时间:2015年6月29日 下午4:11:38   
        * 修  改  人:ligang13009   
        * 修改时间:2015年6月29日 下午4:11:38   
        * 修改备注:   
        * @version  
        * @throws  
        *    
        */ 
        private static String lowToUpperCase(String str) {
            return str.replaceFirst(str.substring(0, 1), str.substring(0, 1)
                    .toUpperCase());
        }
    
        private static Boolean merge(Template template, VelocityContext ctx,
                String path) {
            PrintWriter writer = null;
            Boolean flag = false;
            try {
                writer = new PrintWriter(path);
                template.merge(ctx, writer);
                writer.flush();
                flag = true;
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } finally {
                writer.close();
            }
            return flag;
        }
    
        private static void createDir(String path) {
            File file = new File(path);
            //如果文件夹不存在则创建    
            if (!file.exists() && !file.isDirectory()) {
                file.mkdirs();
            }
        }

    四、模板

    • 模板(JAVA)
      模板JAVA

    • 模板(CSV)

      模板CSV

    展开全文
  • 自动生成代码工具类

    千次阅读 2019-06-10 19:26:09
    自动生成代码工具自动生成代码的思路代码结构生成代码主要步骤生成实体模板开始生成代码最终生成的实体service层接口 这是我在工作之余自己写的一个Java代码生成工具,虽然网上有不少代码自动生成的工具,但是原理都...

    这是我在工作之余自己写的一个Java代码生成工具,虽然网上有不少代码自动生成的工具,但是原理都差不多,自己用空闲时间写一个也能学到一些东西,虽然不推荐重复造轮子,但是自己动手写一个自动生成代码的工具类是花不了多少时间的,只要把思路弄清楚,半天就能撸一个出来,现在我在工作中一般都是用自己写的这个工具类来完成一部分和具体业务关联不大却又必须要写的代码,比如数据库表对应的实体、controller、service、mapper等,一般新功能的开发都少不了增删改查这几个接口,这些接口和代码不应该每次开发新功能都去自己动手写或者复制粘贴,这样容易出错,利用工具一键生成可以节约很多不必要的时间。我平时基本上都是一键生成代码后就可以用Postman工具来测试接口了。

    自动生成代码的思路

    1. 数据库建好表之后,根据jdbc连接数据库,获取表结构信息(字段名称、字段类型、字段备注等信息);
    2. 根据jdbc查询到的表结构信息配合freemarker模板语言构建实体bean;
    3. 根据生成的实体bean配合freemarker模板语言生成controller、service、mapper层的代码;

    代码结构

    在这里插入图片描述

    生成代码主要步骤

    在这里插入图片描述

    生成实体模板

    在这里插入图片描述

    package ${package}.entity;
    
    import java.io.Serializable;
    import java.util.Date;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import lombok.Data;
    
    /**
     * @author ${author}
     * @className: ${entityName}.java
     * @time: ${now}
     * @tableName_comments ${tableNameComments}
     */
    @Data
    @Table(name = ${entityName}.tableName)
    public class ${entityName} implements Serializable {
    
        private static final long serialVersionUID = 1L;
    	private static final String tableName="${tableName}";
    
    	${createPropStr}
    	
    
    }
    

    开始生成代码

    在这里插入图片描述

    最终生成的实体

    package com.ztesoft.bss.salesres.entity;
    
    import java.io.Serializable;
    import java.util.Date;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import lombok.Data;
    
    /**
     * @author wuzhangwei
     * @className: SysUser.java
     * @time: 2019-06-10
     * @tableName_comments 用户ID
     */
    @Data
    @Table(name = SysUser.tableName)
    public class SysUser implements Serializable {
    
        private static final long serialVersionUID = 1L;
    	private static final String tableName="SYS_USER";
    
    	//用户ID
    	@Id
    	private Long id;
    
    	//用户名
    	private String userName;
    
    	//密码是
    	private String password;
    
    	//真实姓名
    	private String trueName;
    
    	//年龄
    	private Long age;
    
    	//性别
    	private String sex;
    
    	//联系电话
    	private String tel;
    
    	//微信
    	private String wx;
    
    	//最后登录时间
    	private Date lastLoginTime;
    
    	//状态0:正常;1:禁用
    	private Long status;
    
    	//加盐
    	private String salt;	
    
    }
    
    

    service层接口

    service层接口freemarker模板

    package ${package}.service;
    
    import com.github.pagehelper.PageInfo;
    import java.util.List;
    import java.util.Map;
    import ${package}.entity.${entityName};
    
    /**
    * @ClassName: ${entityName}Service
    * @Description:
    * @author ${author}
    * @date ${now}
    */
    public interface ${entityName}Service {
    
    	/**
    	* @Description: 列表查询
    	* @param Map<String,Object> params
    	* @throws Exception
    	* @return PageInfo<${entityName}>
        * @author Created by ${author} on ${now}
        */
        public PageInfo<${entityName}>  qry${entityName}List(Map<String,Object> params) throws Exception ;
    
        /**
        * @Description: 通过id查询
        * @param ${instanceName}
        * @return ${entityName}
        * @author Created by ${author} on ${now}
        */
        ${entityName} qry${entityName}ById(${entityName} ${instanceName}) throws Exception;
    
        /**
        * @Description: 修改
        * @param ${instanceName}
        * @return int
        * @author Created by ${author} on ${now}
        */
        int update${entityName}ById(${entityName} ${instanceName}) throws Exception;
    
        /**
        * @Description: 根据id删除
        * @param ${instanceName}
        * @return int
        * @author Created by ${author} on ${now}
        */
        int remove${entityName}ById(${entityName} ${instanceName}) throws Exception;
    
        /**
        * @Description: 新增
        * @param ${instanceName}
        * @return int
        * @author Created by ${author} on ${now}
        */
        int add${entityName}(${entityName} ${instanceName}) throws Exception;
    
    }
    
    
    
    

    service层接口代码

    package com.ztesoft.bss.salesres.service;
    
    import com.github.pagehelper.PageInfo;
    import java.util.List;
    import java.util.Map;
    import com.ztesoft.bss.salesres.entity.SysUser;
    
    /**
    * @ClassName: SysUserService
    * @Description:
    * @author wuzhangwei
    * @date 2019-06-10
    */
    public interface SysUserService {
    
    	/**
    	* @Description: 列表查询
    	* @param Map<String,Object> params
    	* @throws Exception
    	* @return PageInfo<SysUser>
        * @author Created by wuzhangwei on 2019-06-10
        */
        public PageInfo<SysUser>  qrySysUserList(Map<String,Object> params) throws Exception ;
    
        /**
        * @Description: 通过id查询
        * @param sysUser
        * @return SysUser
        * @author Created by wuzhangwei on 2019-06-10
        */
        SysUser qrySysUserById(SysUser sysUser) throws Exception;
    
        /**
        * @Description: 修改
        * @param sysUser
        * @return int
        * @author Created by wuzhangwei on 2019-06-10
        */
        int updateSysUserById(SysUser sysUser) throws Exception;
    
        /**
        * @Description: 根据id删除
        * @param sysUser
        * @return int
        * @author Created by wuzhangwei on 2019-06-10
        */
        int removeSysUserById(SysUser sysUser) throws Exception;
    
        /**
        * @Description: 新增
        * @param sysUser
        * @return int
        * @author Created by wuzhangwei on 2019-06-10
        */
        int addSysUser(SysUser sysUser) throws Exception;
    
    }
    
    
    
    

    其它代码省略…

    完整代码路径:https://github.com/Garfield-Lucky/auto-create-code
    如果觉得有用,请给个赞吧^^!

    展开全文
  • 该工具不要写代码,通过画业务流程图代替代码,然后元素自动定位,一键自动生成测试代码和测试报告,适合测APP/WEB,适用于WINDOWS,安卓,IOS,微信小程序,H5,支持JAVA、Python语言,欢迎大家免费注册使用,...

    您好,我们是苏州龙测智能科技有限公司,主要开发基于ui功能测试智能化工具的,开发人员来自美国微软三位测试博士。该工具不要写代码,通过画业务流程图代替代码,然后元素自动定位,一键自动生成测试代码和测试报告,适合测APP/WEB,适用于WINDOWS,安卓,IOS,微信小程序,H5,支持JAVA、Python语言,欢迎大家免费注册使用,https://prod.dragontesting.com

    展开全文
  • SSM代码自动生成

    2018-08-14 17:45:21
    支持 MySql,SqlServer,DB2 数据库...mybatis.xml,spring-mvc.xml,db.properties与日志文件,另外web.xml也自动配置好,并生成实体相应的Controller控制器,包括基本的接口与业务实现,测试完成后即可在tomcat中运行
  • Java代码自动生成工具

    2010-04-18 18:33:44
    自动生成代码工具中,通过分析输入的设计文档,利用内置的代码模版,自动生成数据访问层(简称D层)和业务逻辑层代码(简称B层)的基本代码。并且预留出程序员加入逻辑控制代码的位置。
  • 通过使用JFrame,应用软件的开发不再需要重头做起,只需通过JFrame自动代码生成工具配置、生成业务代码,并在此基础上简单地补充的业务逻辑即可。 JFrame降低了软件开发人员的要求,开发人员也无需掌握太多的编程...
  • C#代码自动生成器.rar

    2019-11-14 17:06:06
    自动生成器主要生成以ASP.NET MVC+EF+抽象工厂模式+面向接口开发的代码,只需要简单的三步操作,即可生成整个项目框架,方便、高效、快捷。让你只需要关注业务,而不再需要你关注系统最基础的增删改查功能,因为...
  • MyBatis Generator 自动生成代码完整包
  • 架构师助手是一种功能完备的软件框架代码自动生成工具,其充当软件架构师角色,可以基于当前各种流行的软件框架(如:SpringBoot),自动生成基本功能完备的业务系统基础框架。
  • ssh代码自动生成

    2009-11-08 12:27:23
    用ssh架构编写Web项目时,使用myEclipse的代码自动生成功能,很多时候不能满足我们的需要,很多时候需要手工写dao层,manager层,web层与及页面的代码,工作重复繁琐。 借助本工具结合myEclipse,不用写任何代码,就...
  • springboot 代码自动生成

    千次阅读 2018-10-25 18:32:58
    本例,可根据数据库表名,表结构自动生成controller,service,model,dao,mapper.xml ,减少了程序员们的重复劳动,你是不是最烦每次写新模块的时候,新建一个controller ,service然后把 简单的增删改查 业务重复的写一边...
  • 1,一直以来我都在使用号称mybatis ...2,业务部门需求多变,开发任务繁重,因此希望使用代码生成技术提高工作效率,然后就找到了inteillij插件库里的一款mybatis 生成插件,作者主页:https://gitee.com/rohou/myb...
  • mybatis自动生成代码 IDEA

    千次阅读 2017-01-10 15:47:22
    mybatis是一个基于java的持久层框架,有了它,我们可以方便的进行数据库的增删改查(好吧,我承认我对于增删改查已经吐了)。...本文就来介绍一下IDEA中mybatis如何自动生成上述代码。上图中,红色括号的部分,都是myba
  • 主要实现在 C# 中对应数据库中表的基类代码自动生成,包括生成属性、添加、修改、删除、查询、存在性、 Model 类构造等基础代码片断,使程序员可以节省大量机械录入的时间和重复劳动,而将精力集中于核心业务逻辑...
  • 主要实现在 C# 中对应数据库中表的基类代码自动生成,包括生成属性、添加、修改、删除、查询、存在性、 Model 类构造等基础代码片断,使程序员可以节省大量机械录入的时间和重复劳动,而将精力集中于核心业务逻辑...
  • 步骤一: 搭建Jeesite环境 具体搭建不做赘述了,相信有很多帖子已经是写的很清楚了,我就不再做多余的解释了 步骤二: 设计表格 自行根据业务需要设计一张表格,然后通过你最喜欢的方式...步骤三: 生成业务表 在系统中依...
  • MyBatis-Plus自动生成代码

    千次阅读 2020-05-19 09:43:28
    自动生成代码java类 package com.hy.smart.cafeteria.common; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.generator.AutoGenerator; import ...
  • 1、AutoJava是什么? <br>AutoJava 是一款针对于Oracle和SQLserver数据库的、以面向对象模式的Java代码生成工具。... AutoJava生成代码是高度重用、灵活的,我们可以在此基础上灵活地进行业务开发。
  • SpringBoot下实现mybatis代码自动生成

    千次阅读 2017-06-27 16:19:09
    SpringBoot下实现mybatis代码自动生成       一、环境准备,spring boot web工程,Eclipse开发工具,数据库等。 1、创建一个spring boot工程 2、创建一个数据库和对应的表 二、配置文件,生成代码。 1、...
  • mybatis-generator 代码自动生成工具

    万次阅读 多人点赞 2016-03-09 15:29:18
    今天来介绍下怎么用mybatis-gennerator插件自动生成mybatis所需要的dao、bean、mapper xml文件,这样我们可以节省一部分精力,把精力放在业务逻辑上。 之前看过很多文章,都是借助eclipse或者IDEA等其他工具,今天讲...
  • 在基于Mybatis的项目中,我们可以通过Mybatis的插件从数据库表结构进行业务代码生成。今天给大家介绍一款Idea的插件,不仅可以达到Mybatis反向生成的效果,而且还可以更加灵活的使用。 插件安装 通常Idea插件的...
  • 基于T4引擎根据模板自动生成代码,如生成实体类、业务逻辑类、前台页面以及后代代码等。 运行环境: dotnet framework4.0
  • 使用之前先把数据库表mybatis逆向工程,生成对应的实体类等等文件, 此压缩包将能为你自动生成crud的控制器,以及对应的业务代码(包括分页插件的分页功能) 将此压缩包内的CodeGenetator文件放进项目的util包中, 将此...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 281,841
精华内容 112,736
关键字:

自动生成业务代码