<dependency>
<groupId>com.github.heyi-core</groupId>
<artifactId>generator</artifactId>
<version>4.1.2</version>
<scope>test</scope>
</dependency>
scope方式为test,代码不会被打包进去
所有文件皆在项目的test目录下
1.启动文件
随意命名 执行下main方法即可
public static void main(String[] args) {
GService cgm = new GService();
cgm.run();
}
2.配置文件
必须以generatorConfig.properties命名,将文件生成到resource下
3.在resource目录下生成文件夹,随意命名,用于存放生成所属的ftl模板
###数据库连接
jdbc.url=jdbc:mysql://192.168.1.121:3306/database?useUnicode=true&characterEncoding=UTF-8&useSSL=false
###数据库
jdbc.database=database
###数据库用户名
jdbc.username=database
###数据库密码
jdbc.password=database
###需要生成的表名
(1.如果要写所有表 target.table=*
2.如果要写以us开头的所有表 target.table=us*
3.如果要生成多张表 target.table=user,role
)
target.table=user
###生成的主目录
base.package=com.heyi.mypro
###mapper文件生成主目录
mappers.file= /src/main/resources/mappers
###签名信息
author=name
###配置
template.file=template
###mapper配置
mappers.file=/src/main/resources/mappers
存放代码模板 命名规则为后缀 以user为例 model模板为 .java.ftl 生成出的文件为 User.java controller模板为 Controller.java.ftl 生成出的文件为 UserController.java
运行生成代码,根据resource下template模板生成,创建了几份文件 生成几份代码
如果你的模板外有一个指定生成位置
例如user.java文件要生成到user下面model文件夹下
那就在template创建一个model文件夹 将你的ftl模板放到这个model文件夹下 那生成出来的文件路径就是 XXXX/user/model/user.java
如果你的模板不需要指定生成位置
那就将你的ftl生成模板全部放到template下即可
生成的model,controller,service,dao的文件在一个文件夹内,例如 XXXX/user/user.java XXXX/user/userController.java
生成的mapper文件在resource/mappers文件夹下
配置文件mappers.file是你mapper文件的主目录
如果你设定了指定mapper的生成位置
例如你要讲user的mapper文件生成到user文件夹下,那就创建一个user文件夹,将mapper的ftl模板放到user文件夹下,
那么他的生成文件路径为 mappers.file/user/userMapper.xml
如果你不指定生成位置
那就生成的所有mapper文件都是在mapper.file路径下
书写模板时按照freemarker的书写规范书写即可
引入数据库的表信息 例:表的注释(${table.tableComment})
1.数据库的全部表信息:
${table.dataBase} 数据库
${table.author} 创建人
${table.createTime} 创建时间
${table.tableName} 表名称
${table.tableNameLower} 表名称全部小写
${table.tableNameLowerCamel} 表名称首字母小写其余驼峰
${table.tableNameUpperCamel} 表名称首字母大写其余驼峰
${table.tableComment} 表注释
${table.tablePackage} 包名称
${table.projectPath} 项目路径
${table.savetPath} 项目路径
2.数据库表中字段信息 如需获取每个表字段信息 freemarker语法遍历colums即可
colum 为遍历后命名的每个表字段对象
${colum.columComment} 字段注释
${colum.jdbcType} 数据库数据类型
${colum.sqlType} sql类型
${colum.columName} 字段名称
${colum.columNameLower} 字段名称全小写不含下划线
${colum.columNameLowerCamel} 字段名称首字母小写其余驼峰
${colum.columNameUpperCamel} 字段名称首字母大写其余驼峰
3.主键信息
key为主键字段的对象
${key.columComment} 主键注释
${key.jdbcType} 数据库数据类型
${key.sqlType} sql类型
${key.columName} 字段名称
${key.columNameLower} 字段名称全小写不含下划线
${key.columNameLowerCamel} 字段名称首字母小写其余驼峰
${key.columNameUpperCamel} 字段名称首字母大写其余驼峰