# 模板与匹配规则说明
模板定义使用 SdTemplate 通过path属性定义模板所在目录,通过file属性定义模板的名称,模板目录获取规则如下:
如果path为空则获取
- classPath/SdTemplates
- user.dir/SdTemplates
- 创建user.dir/SdTemplates
如果path不为空则获取
- path
- user.dir/path
- user.dir/SdTemplates/path
- 创建user.dir/SdTemplates/path
如果file为空获取规则
获取模板的规则,获取顺序获取,如果到最后还获取不到则抛出异常
- SdTemplates/file
- user.dir/SdTemplates/file
- 复制screw-driver-X.jar/SdTemplates/file 到 user.dir/SdTemplates/file
如果file不为空获取规则
获取模板的规则,获取顺序获取,如果到最后还获取不到则抛出异常
- path/file
- user.dir/SdTemplates/path/file
- 复制screw-driver-X.jar/SdTemplates/path/file 到 user.dir/SdTemplates/path/file
- 复制screw-driver-X.jar/SdTemplates/file 到 user.dir/SdTemplates/path/file
# 通用模板
ScrewDriver默认使用FreeMarker编写了部分常用的模板,同时也实现了MVEL模板渲染,你可以自己编写模板,其他模板你可以参考 自定义模板引擎
普通的java类
path=null,file=JavaEntity.ftl,生成效果:
package entity;
/**
* 用户
* @author
*/
public class User {
/** 用户的id */
private Long id ;
/**
* 获取用户的id
*
* @return
*/
public Long getId() {
return id;
}
/**
* 设置用户的id
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
@Override
public String toString() {
return "User [id=" + id +"]";
}
}
Lombok的java类 path=null,file=JavaLombokEntity.ftl,生成效果:
package entity;
import lombok.Data;
/**
* 用户
* @author
*/
@Data
public class User {
/** 用户的id */
private Long id ;
}
流式的java类
path=null,file=JavaFluentEntity.ftl,生成效果:
package entity;
/**
* 用户
* @author
*/
public class User {
/** 用户的id */
private Long id ;
/**
* 获取用户的id
*
* @return
*/
public Long getId() {
return id;
}
/**
* 设置用户的id
*
* @param id
*/
public User setId(Long id) {
this.id = id;
return this;
}
@Override
public String toString() {
return "User [id=" + id +"]";
}
}
# Vert.x模板
Vert.x 模板,生成后的代码依赖vertx-sql-assist 通用SQL操作,也就是你需要添加依赖:
<dependency>
<groupId>org.mirrentools</groupId>
<artifactId>vertx-sql-assist</artifactId>
<version>${version}</version>
</dependency>
模板路径:
String packageName="org.mirrentools.";
String entityName="Users";
String templatePath="vertx";
Map<String, SdTemplate> templates = new HashMap<String, SdTemplate>();
templates.put("entity", new SdTemplate()
.setPath(templatePath)
.setFile("Entity.ftl")//Lombok模板为EntityLombok.ftl
.setPackageName(packageName + "entity")
.setClassName(entityName));
templates.put("sql", new SdTemplate()
.setPath(templatePath)
.setFile("SQL.ftl")
.setPackageName(packageName + "sql")
.setClassName(entityName + "SQL"));
templates.put("service", new SdTemplate()
.setPath(templatePath)
.setFile("Service.ftl")
.setPackageName(packageName + "service")
.setClassName(entityName + "Service"));
templates.put("serviceImpl", new SdTemplate()
.setPath(templatePath)
.setFile("ServiceImpl.ftl")
.setPackageName(packageName + "service.impl")
.setClassName(entityName + "ServiceImpl"));
templates.put("router", new SdTemplate()
.setPath(templatePath)
.setFile("Router.ftl")
.setPackageName(packageName + "router")
.setClassName(entityName + "Router"));
templates.put("test", new SdTemplate()
.setPath(templatePath)
.setFile("Test.ftl")
.setSourceFolder(SdConstant.MAVEN_TEST)
.setPackageName(packageName + "test")
.setClassName(entityName+"RouterTest"));
# Spring JPA 模板
模板路径:
String packageName="com.mirrentools.";
String entityName="Users";
String templatePath="jpa";
Map<String, SdTemplate> templates = new HashMap<String, SdTemplate>();
templates.put("entity", new SdTemplate()
.setPath(templatePath)
.setFile("Entity.ftl")//Lombok模板为EntityLombok.ftl
.setPackageName(packageName + "entity")
.setClassName(entityName));
templates.put("dao", new SdTemplate()
.setPath(templatePath)
.setFile("Dao.ftl")
.setPackageName(packageName + "repository")
.setClassName(entityName + "Repository"));
templates.put("service", new SdTemplate()
.setPath(templatePath)
.setFile("Service.ftl")
.setPackageName(packageName + "service")
.setClassName(entityName + "Service"));
templates.put("serviceImpl", new SdTemplate()
.setPath(templatePath)
.setFile("ServiceImpl.ftl")
.setPackageName(packageName + "service.impl")
.setClassName(entityName + "ServiceImpl"));
templates.put("controller", new SdTemplate()
.setPath(templatePath)
.setFile("Controller.ftl")
.setPackageName(packageName + "controller")
.setClassName(entityName + "Controller"));
templates.put("test", new SdTemplate()
.setPath(templatePath)
.setFile("Test.ftl")
.setSourceFolder(org.mirrentools.sd.constant.SdConstant.MAVEN_TEST)
.setPackageName(packageName + "test")
.setClassName(entityName + "ControllerTest")
);
# MyBatis模板
模板路径:
String packageName="com.mirrentools.";
String entityName="Users";
String templatePath="mybatis";
Map<String, SdTemplate> templates = new HashMap<String, SdTemplate>();
templates.put("entity", new SdTemplate()
.setPath(templatePath)
.setFile("Entity.ftl")//Lombok模板为EntityLombok.ftl
.setPackageName(packageName + "entity")
.setClassName(entityName));
templates.put("dao", new SdTemplate()
.setPath(templatePath)
.setFile("Dao.ftl")
.setPackageName(packageName + "mapper")
.setClassName(entityName + "Mapper"));
templates.put("assist", new SdTemplate()
.setPath(templatePath)
.setFile("SqlAssist.ftl")
.setPackageName(packageName + "common")
.setClassName("SqlAssist"));
templates.put("mapper", new SdTemplate()
.setPath(templatePath)
//MySQL = MySqlMapper.ftl
//PostgreSQL = PostgreSqlMapper.ftl
//SQLite = SqliteMapper.ftl
//Oracle = OracleMapper.ftl
//SQL Server = SqlServerMapper.ftl
//DB2 = DB2Mapper.ftl
.setFile("MySqlMapper.ftl")
.setPackageName("mappers")
.setSourceFolder("src/main/resources")
.setClassName(entityName + "Mapper")
.setSuffix(".xml")
);
templates.put("service", new SdTemplate()
.setPath(templatePath)
.setFile("Service.ftl")
.setPackageName(packageName + "service")
.setClassName(entityName + "Service"));
templates.put("serviceImpl", new SdTemplate()
.setPath(templatePath)
.setFile("ServiceImpl.ftl")
.setPackageName(packageName + "service.impl")
.setClassName(entityName + "ServiceImpl"));
templates.put("controller", new SdTemplate()
.setPath(templatePath)
.setFile("Controller.ftl")
.setPackageName(packageName + "controller")
.setClassName(entityName + "Controller"));
templates.put("test", new SdTemplate()
.setPath(templatePath)
.setFile("Test.ftl")
.setSourceFolder(org.mirrentools.sd.constant.SdConstant.MAVEN_TEST)
.setPackageName(packageName + "test")
.setClassName(entityName + "ControllerTest")
);
# MyBatis-Plus模板
模板路径:
String packageName="com.mirrentools.";
String entityName="Users";
String templatePath="mybatis-plus";
Map<String, SdTemplate> templates = new HashMap<String, SdTemplate>();
templates.put("entity", new SdTemplate()
.setPath(templatePath)
.setFile("Entity.ftl")//Lombok模板为EntityLombok.ftl
.setPackageName(packageName + "entity")
.setClassName(entityName));
templates.put("dao", new SdTemplate()
.setPath(templatePath)
.setFile("Dao.ftl")
.setPackageName(packageName + "mapper")
.setClassName(entityName + "Mapper"));
templates.put("service", new SdTemplate()
.setPath(templatePath)
.setFile("Service.ftl")
.setPackageName(packageName + "service")
.setClassName(entityName + "Service"));
templates.put("serviceImpl", new SdTemplate()
.setPath(templatePath)
.setFile("ServiceImpl.ftl")
.setPackageName(packageName + "service.impl")
.setClassName(entityName + "ServiceImpl"));
templates.put("controller", new SdTemplate()
.setPath(templatePath)
.setFile("Controller.ftl")
.setPackageName(packageName + "controller")
.setClassName(entityName + "Controller"));
templates.put("test", new SdTemplate()
.setPath(templatePath)
.setFile("Test.ftl")
.setSourceFolder(org.mirrentools.sd.constant.SdConstant.MAVEN_TEST)
.setPackageName(packageName + "test")
.setClassName(entityName + "ControllerTest")
);
← 在IDE中定义快捷键 模板数据说明 →