如何利用SQL中数据使用FreeMarker生成JAVA实体bean代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何利用SQL中数据使用FreeMarker生成JAVA实体bean代码相关的知识,希望对你有一定的参考价值。
参考技术A 利用freemarker生成JAVA BEANFreemarker模板代码如下:
package $packageName;
/**
* <#if author == "adams"> @author adams </#if>
*/
pulic class $className
<#list attrs as a>
private $a.type $a.field;
</#list>
<#list attrs as a>
public void set$a.field?cap_first($a.type $a.field)
this.$a.field = $a.field;
public $a.type get$a.field?cap_first()
return this.$a.field;
</#list>
Java代码如下
package com.my.learn.freemarker;
public class Attr
public String field;
public String type;
public Attr(String field, String type)
this.field = field;
this.type = type;
public String getField()
return this.field;
public String getType()
return this.type;
public void setField(String field)
this.field = field;
public void setType(String type)
this.type = type;
package com.my.learn.freemarker;
import java.io.File; import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;
import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException;
public class FmAppUseage
public static void main(String[] args)
List<Object> list = new ArrayList<Object>();
list.add(new Attr("username", "String"));
list.add(new Attr("password", "String"));
list.add(new Attr("age", "int"));
list.add(new Attr("hobby", "String"));
Map<String,Object> root = new HashMap<String, Object>();
root.put("packageName", "com.my.learn.freemarker");
root.put("className", "User");
root.put("attrs", list);
root.put("author", "adams");
Configuration cfg = new Configuration();
String path = FmAppUseage.class.getResource("/").getPath()+"template";
try
cfg.setDirectoryForTemplateLoading(new File(path));
Template template = cfg.getTemplate("/demo.ftl");
StringWriter out = new StringWriter();
template.process(root, out);
System.out.println(out.toString());
catch (IOException e)
System.out.println("Cause==>" + e.getCause());
catch (TemplateException e)
System.out.println("Cause==>" + e.getCause());
输出结果如下:
package com.my.learn.freemarker;
/**
* @author adams
*/
pulic class User
private String username;
private String password;
private int age;
private String hobby;
public void setUsername(String username)
this.username = username;
public String getUsername()
return this.username;
public void setPassword(String password)
this.password = password;
public String getPassword()
return this.password;
public void setAge(int age)
this.age = age;
public int getAge()
return this.age;
public void setHobby(String hobby)
this.hobby = hobby;
public String getHobby()
return this.hobby;
当在笔者刚做测试时,将Attr的类定义在了FmAppUseage类的内部,导致不能正常运行,只能将其移除单独成一个类时,便能正常运行了。 转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦本回答被提问者和网友采纳
在 Freemarker 模板中,如何获取数据模型类的名称?
【中文标题】在 Freemarker 模板中,如何获取数据模型类的名称?【英文标题】:In Freemarker templates, how do you get the name of the data model's class? 【发布时间】:2011-05-05 21:29:17 【问题描述】:我正在使用 Freemarker 从包含对象列表的 POJO 生成 XHTML 页面,所有这些都是同一父类的子类的实例。我想根据其类为每个对象生成不同的信息。你如何在 Freemarker 语言中进行测试?例如,如果我有一个 List,我将如何确定特定 Shape 是 Rectangle 还是 Circle?
【问题讨论】:
【参考方案1】:$class.name
虽然我建议您考虑使用每个类的方法来为每个子类生成独特的行为。 Polymorphism 是一件很棒的事情。 :)
【讨论】:
谢谢,这正是我所需要的。我的实际 POJO 是 model 对象,因此添加生成 XHTML view 逻辑的 sn-ps 的多态方法将是一个禁忌。 ;-) 有道理,只是把它扔在那里以上是关于如何利用SQL中数据使用FreeMarker生成JAVA实体bean代码的主要内容,如果未能解决你的问题,请参考以下文章
使用freemarker生成的word文档,如何利用java代码将其转换为pdf格式?
在 Freemarker 模板中,如何获取数据模型类的名称?
Spring boot入门:SpringBoot集成结合AdminLTE(Freemarker),利用generate自动生成代码,利用DataTable和PageHelper进行分页显示(示例(代码