接上一篇博客http://xinyangwjb.iteye.com/blog/1420708
将表信息转化成java文件,第一件事是列名与java字段名的转化:
按照java编程习惯,如果属性名有两个以上字母组成,则从第二个字母开始,首字母必须大写。
因此如果列名为import_count,要去掉下划线,转化为importCount属性名。
如果数据库名本身就是importCount,则可以直接将列名赋值给属性名。
Date类型默认是java.sql.Date,需要先转化为java.util.Date,
number类型默认是java.math.BigDecimal,需要先转化为java.lang.Long
第二件事是定义一个
Map<String,Object> rootData = new HashMap<String,Object>();
将所有要往flt模板中填的字段都塞进这个rootData,这根据不同人的编码习惯自定义。这是个超级体力活!!!模板中的字段要一点点拼出来。
第三件事是启用freemarker的模板功能,将自定义的填充字段塞进flt模板中
/**@模板所在文件夹路径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的编写也是非常累的体力活
我先写了一个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);
}
总之实现技术很简单,但是ftl模板和往模板中填充的数据的拼接是个超级体力活,我估计需要一个月的业余时间来实现这些东西!!!
分享到:
相关推荐
上次上传是自己手工string拼成实现的代码,这次试用了freemarker模板自动生成,效果是一样的,代码质量提高了
Java利用Freemarker模板自动生成dto、dao、rowmapper、bo、service代码,代码可以直接复制到项目中使用,代码是基于pring框架的
freemarker实现代码生成器详细教程
java代码自动生成工具: 1.根据Mysql数据库的表生成java实体类,包括注释 2.将Excel表格数据生成java实体类,包括注释 3.包括源文件和生成好的jar工具,和示例文件 技术: java、log4j、poi表格操作、jdbc数据库操作...
FreeMarker模板引擎不错,使用非常简单,其实可以做很多事情,比如代码自动生成,按格式生成work文件等,这里简单的实现了按照实体生成建表语句、action、biz、dao和对应的xml文件等
基于Freemarker模板的纯Java代码实现的代码生成器工具
3、可大大提高开发效率,数据表创建完以后,自动生成entity,mapper.xml,dao,service,controller,vo,dto相关代码。 4、本项目集成了spring,aop,mybatis plus,swagger2,异常处理,分页,freemarker等多种技术。 5、操作...
利用freemarker生成MVC代码,避免做大量重复的复制黏贴替换工作,更专注在业务代码实现和难度更大的技术问题上,提高工作效率
java代码自动生成器,减少30%重复工作量,使用freemarker定义代码基本模板,提供数据库导出和pdm文件上传导出,导入打zip下载,学习扩展的好demo^_^
附件包含了mybatis-plus自动生成代码,基于freemarker的模板。包括常规的curd。 【特点】针对每个接口都有对应的入参和出参,不公用entity。 如,add接口,则入参会自动生成为addEntityReq。具体可下载模板进行查看...
在公司做项目,特别是业务...大量的复制粘贴 很枯燥麻烦,因此决定做一个代码自动生成工具。 jdbc DatabaseMetaData(连接数据库 读取表结构) freemarker (根据订制的模版生成 文件) 美化swing界面 substance 皮肤包
根据数据库字段,自动生成所需service,dao,pojo,mybatis等可通过更改ftl文件修改模板,项目使用springboot构建,使用freemarker模板生成,在application.yml内配置生成文件地址及包名
主要是利用freemarker根据数据库字段自动生成form表单以及dao层和service层的增删改查等功能
基于freemarker写的java代码生成器,通过从数据库数据表中抽取元数据来填充模板快速生成代码。可自定义代码模板来快速生成代码,成倍提高您的开发效率。目前仅支持mysql数据库。需要jre运行环境支持。 注意所有字段...
(最后说一下:有些人觉得不就是配置一个FreeMarker模板么,根据模板自动生成就OK。是,确实是这样,可是说起来容易,编写起来这样的程序可真就难了,何况我自己拿到源码看了和改了一下就用了4个小时左右!不过作者写...
支持生成DAO,PO,和sql语句的xml文件。
该项目通过一键完成:自动生成指定表的增删改查功能(是用ajax完成的哦) 无刷新的。 使用的是jsp+jquery+struts2+dwr+hibernate+freemarker 下载后导入到myeclipse中部署到tomcat6上即可。 注意先按照方法初始化...
1、新增通过自定义模板生成Word文档的功能,可以使用FreeMarker模板生成自定义格式的数据库文档。 2、新增 Swagger2 在线API转离线API文档的功能,生成Word接口文档。 3、新增对 MariaDB 数据库的支持,需要删除旧的...
java项目源码
该生成器主要包括如果根据数据库表,自动生成 Model 文件,DTO 文件,DAO 文件,MyBatis的 Mappter 文件,Service 文件,Controller文件等等,包括基本的增删改查,分页,搜索查询等等接口代码自动生成。