java代码自动生成三(freemarker)
将表信息转化成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模板和往模板中填充的数据的拼接是个超级体力活,我估计需要一个月的业余时间来实现这些东西!!!
相关推荐
81314797 2020-11-18
89314493 2020-11-03
81941231 2020-09-17
thisisid 2020-09-09
如狼 2020-08-15
82384399 2020-06-16
86384798 2020-05-12
80183053 2020-05-02
86384798 2020-04-26
86384798 2020-04-11
rionchen 2020-04-09
86384798 2020-04-07
86384798 2020-04-04
80183053 2020-03-07
87201943 2020-03-06
83961233 2020-02-26
87201943 2020-02-21