freemarker简单实例:生成实体类

目录

1、简介

2、实例


1、简介

Apache FreeMarker 是一个模板引擎:一个基于模板和变化数据生成文本输出(HTML网页、电子邮件、配置文件、源代码等)的Java库。模板是用FreeMarker模板语言(FTL)编写的,它是一种简单的、专门的语言(不是像PHP那样的全面的编程语言)

2、实例

1)创建一个maven项目,我的相关类最终目录,就3个文件

2)创建模板文件hello.ftl,ftl 语法可简单网上了解下

package ${classPath};

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
* @author yourFather
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ${className} {

<#list properties as property>
    /**
    * ${property.comment}
    */
    private ${property.type} ${property.name};
</#list>

    public static void main(String[] args) {
        System.out.println("${helloWorld}");
    }

}

3)创建生成功能类 GenerateFile,运行main方法后,即会发现生成了UserDemo类

pom文件引入的依赖:

<dependency>
  <groupId>org.freemarker</groupId>
  <artifactId>freemarker</artifactId>
  <version>2.3.30</version>
</dependency>
package com.future.docker.freemarker;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.*;

import freemarker.template.Configuration;
import freemarker.template.Template;

/**
 * @author yourFather
 */
public class GenerateFile {

    private static final String TEMPLATE_PATH = "src/main/java/com/future/docker/freemarker/template";
    private static final String CLASS_PATH = "src/main/java/com/future/docker/freemarker/output";

    public static void main(String[] args) {
        // step1 创建freeMarker配置实例,参数:版本实例(FreeMarker 2.3.23之前不带参数的Configuration方法被弃用)
        Configuration configuration = new Configuration(Configuration.VERSION_2_3_30);
        Writer out = null;
        try {
            // step2 获取模版路径
            configuration.setDirectoryForTemplateLoading(new File(TEMPLATE_PATH));
            // step3 创建数据模型
            Map<String, Object> dataMap = fillData("UserDemo","com.future.docker.freemarker.output");
            // step4 加载模版文件
            Template template = configuration.getTemplate("hello.ftl");
            // step5 生成数据
            File docFile = new File(CLASS_PATH + "\\" + "UserDemo.java");
            out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(docFile)));
            // step6 输出文件
            template.process(dataMap, out);
            System.out.println("UserDemo.java 文件创建成功 !");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != out) {
                    out.flush();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }

    public static Map<String, Object> fillData(String className,String classPath){
        String[] properties = {"name","sex","age"};
        String[] types = {"String","String","Integer"};
        String[] comments = {"姓名","性别","年龄"};
        List<Map> listMap = new ArrayList<>();
        for(int i =0; i<properties.length; i++){
            Map<String, Object> map = new HashMap<>();
            map.put("name",properties[i]);
            map.put("type",types[i]);
            map.put("comment",comments[i]);
            listMap.add(map);
        }
        Map<String, Object> dataMap = new HashMap<>();
        dataMap.put("properties", listMap);
        dataMap.put("classPath", classPath);
        dataMap.put("className", className);
        dataMap.put("helloWorld", "生成实体类");
        return dataMap;
    }
}

 4)生成的UserDemo如下

package com.future.docker.freemarker.output;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
* @author yourFather
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserDemo {

    /**
    * 姓名
    */
    private String name;
    /**
    * 性别
    */
    private String sex;
    /**
    * 年龄
    */
    private Integer age;

    public static void main(String[] args) {
        System.out.println("生成实体类");
    }

}
自己编写的实体类生成器 支持数据库oracle 和 SqlServer 支持实体类生成程序:C# 和 java *注意: 电脑上一定要安装 framework才能运行本软件 有什么问题请联系qq:910579826 备注添加:实体类生成器 1. 用户首先选择要操作的数据库,选中后程序会自动创建数据库连接字符串。 2.选择要生成实体类类型,程序会根据选中的类型自动生成相对应的实体类 3.在程序左侧会显示连接的数据库列表,选择要操作的数据库,会自动加载该数据库下的表信息。 4.选择要操作的表,在右侧会显示该表的表中的字段信息 5.程序自动处理数据库中的书库类型,将其转换为程序相对应的可以识别的数据类型。 6.在字段显示窗体,用户还可以手动选择数据类型。 7.用户可以选择要生成的字段信息,不想生成的字段只要取消选中状态即可 8.选择生成文件保存的路径 9.设置要生成的包名或名称空间名 10.点击生成按钮。这时,弹出一个编辑实体类窗体,在这里可以对即将要生成实体类信息进行检查并修改信息。 11.修改完毕后,点击生成。完毕后提示生成成功! *备注:程序中每一步都有相对应的必要检测,当用户选择不符合必须选择或填写的信息时,将提示相对应的提示。 修改,创建操作时,都有确认提示。 说明: 根据数据库表结构,自动生成实例类 支持的数据库:oracle和SQLServer 可生成实体类:C#实体类Java实体类 软件特点: 同时支持Oracle和SQLServer两种数据库 同时支持Java和C#程序的实体类生成 同时支持任意数据库搭配任意程序的实体类生成
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值