如何利用SQL中数据使用FreeMarker生成JAVA实体bean代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何利用SQL中数据使用FreeMarker生成JAVA实体bean代码相关的知识,希望对你有一定的参考价值。

参考技术A 利用freemarker生成JAVA BEAN

Freemarker模板代码如下:

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 模板中,如何获取数据模型类的名称?

利用freemarker导出页面格式复杂的excel

利用freemarker导出页面格式复杂的excel

Spring boot入门:SpringBoot集成结合AdminLTE(Freemarker),利用generate自动生成代码,利用DataTable和PageHelper进行分页显示(示例(代码

如何在 Maven 中使用模板代码生成器(例如 freemarker)?