java代码自动生成三(freemarker)

接上一篇博客http://xinyangwjb.iteye.com/blog/1420708[size=large]
[color=red]将表信息转化成java文件,第一件事是列名与java字段名的转化:[/color]
按照java编程习惯,如果属性名有两个以上字母组成,则从第二个字母开始,首字母必须大写。
因此如果列名为import_count,要去掉下划线,转化为importCount属性名。
如果数据库名本身就是importCount,则可以直接将列名赋值给属性名。
Date类型默认是java.sql.Date,需要先转化为java.util.Date,
number类型默认是java.math.BigDecimal,需要先转化为java.lang.Long
[color=red]第二件事是定义一个[/color][/size]

Map<String,Object> rootData = new HashMap<String,Object>();

[size=large]将所有要往flt模板中填的字段都塞进这个rootData,这根据不同人的编码习惯自定义。[color=indigo]这是个超级体力活!!!模板中的字段要一点点拼出来。[/color]
[color=red]第三件事是启用freemarker的模板功能,将自定义的填充字段塞进flt模板中[/color][/size]
/**@模板所在文件夹路径templatePath
*@模板名templateName
*@fileName新建java文件所在文件夹路径
*@rootData往flt模板中填的Map数据
*/
freemarker.template.Configuration config = new freemarker.template.Configuration();
config.setDirectoryForTemplateLoading(new File(templatePath));
config.setObjectWrapper(new DefaultObjectWrapper());
FileOutputStream fos = new FileOutputStream(fileName);
Writer writer = new OutputStreamWriter(,"UTF-8");
template.process(rootData , writer );

到这里算完成了,但是flt的编写也是非常累的体力活 :shock: 我先写了一个dao.flt
package ${packageName}.dao;

import ${packageName}.${moduleName};
import java.util.List;
import java.util.Map;

public interface ${moduleName}DAO
{
/**
*
* @${author} ${datetime}
*/
public Long add${moduleName}(${moduleName} example);

/**
*
* @${author} ${datetime}
*/
public boolean deleteByPrimaryKey(${primaryFiled.fieldJavaType} ${primaryFiled.fieldName});

/**
*
* @${author} ${datetime}
*/
public boolean update${moduleName}( ${moduleName} example);

/**
*
* @${author} ${datetime}
*/
public ${moduleName} get${moduleName}ById(Long id);
/**
*
* @${author} ${datetime}
*/
public PageInfo<${moduleName}> get${moduleName}List(${moduleName} example);
/**
*
* @${author} ${datetime}
*/
public int delete${moduleName}ByIds(String ids);

}

[size=large][color=red]总之实现技术很简单,但是ftl模板和往模板中填充的数据的拼接是个超级体力活,我估计需要一个月的业余时间来实现这些东西!!![/color][/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值