玩转模板--自动代码生成工程
简介:
工程自动获取和封装用户自定义参数以及数据库表信息,并通过模板配置文件将生成代码文件直接输出到应用工程目录下,达到从数据库表到页面增删改查过程代码一键生成.
工程提供所有源码,包括第三方jar包也附带源码包
注意事项:
1.需要一定的java开发基础.
2.要有java开发的集成环境,本工程没有界面,很多功能都是通过直接注释,或增加一些代码完成.
3.JDK版本必须是1.6以上,否则会报版本错误.当然也可以更换工程依赖的jar,使用一些低版本的jar包
使用说明:
1. 修改数据库连接参数:详见jdbc.properties
2. 修改或增加数据库字段类型与编译语言数据类型映射:详见dm2java.properties
3. 修改模板配置信息:详见vm.xml
4. 编写用户模板,参考/templates目录下的文件
5. 开启关闭/备份: 调用FileUtilsExt.backup(String[] fileList, String backupDir)方法
6. 还原备份: 调用FileUtilsExt.recover(String backupDir)方法.
7. 从数据库表合成文件: 调用PlayTemplates的main方法
8. 从EXCEL和成文件: 调用ExcelUtils的main方法
详细说明:
1.自动封装用户参数
参数配置文件params.properties有三类参数:
1.1 以array.为前缀参数(可设定设定多个)且用逗号分隔,将封装成数组对象,可循环输出
例如: array.names=xixi, haha
模版调用: #foreach($item in $names)
$item
#end
输出:xixi
haha
1.2 以single.为前缀的参数(可设定设定多个),可在模板中直接调用输出
例如: single.name=xixi
模版调用: $name
输出:xixi
1.3 无任何前缀的参数,为工程要强制使用的参数,必须填写
2. 封装数据库表参数,目前只支持达梦数据库(我们公司自个的数据库),其他数据库以后再完善
如果各位想用其他数据库,可以自己加载其他数据库的驱动,并修改一下DbOption类下的getTableColumns(String)方法中的查询表信息方法
以及添加类似dm2java.properties数据库类型到java数据类型的映射文件,不同数据库的方言和数据映射太烦了.
当然,也可以联系我^_^
自动从数据库中获取表名/表注释/列名/列注释/列类型等等相关信息
示例:由角色表生成domain对象
模版:
package $!{package}.domain;
import java.util.Date;
/**
* $!system
* @author $!author
* @version $!version
* @date $!dateTool.format('yyyy-MM-dd', ${date})
*/
public class $!{tableAlias}{
#foreach($item in $columnList)
private $!item.data_type $!item.column_name.toLowerCase(); // $!item.column_label
#end
#foreach($item in $columnList)
#set($name = $!item.column_name.toLowerCase())
#set($upperName = $!{stringTool.firstUpperCase($name)})
public void set$!{upperName}($!item.data_type $name){
this.$name=$name;
}
public $