mybtais-generator
项目介绍
开箱既用 代码生成直接就可以写业务代码
mybtais-generator 扩展了mybtai自动生成;
在原有的基础上自动生成 扩展MapperExt.java 和 扩展MapperExt.xml 文件
并且MapperExt.xml 文件直接继承 原生的Mapper.xml 文件 ;他们为同一个命名空间
所以再MapperExt.xml 中可以直接使用 BaseResultMap
自动生成MapperExt.java文件
自动生成MapperExt.xml 文件
使用Mybatis3 的动态Sql生成
自动生成Repository服务层
自动生成Facade对外接口层
0侵入,纯粹生成代码即可
软件架构
1.只是将Mapper所有类似的方法 用泛型抽象了出来
就不需要每个Mapper都建那些curd的接口
2.自动生成Repository类,主要调用Mapper接口,
以及实现业务
3.Facade 就对外暴露接口层;分布式只提供次模块出去
安装教程
xxxx
xxxx
xxxx
使用说明
可以clone次项目打包使用或者直接下载提供的Jar包使用
Jar附件下载
将Jar导入到 Dao模板
在Dao模块新建一个生成类
import com.src.common.util.MybatisGeneratorUtil;
import com.src.common.util.PropertiesFileUtil;
import java.util.HashMap;
import java.util.Map;
/**
* 代码生成类
* Created by src on 2018/6/25.
* 放在Dao层下面
*/
public class Generator {
//Model + ModelExample 存放的路径和包名
private static String targetProjectDao = "wechat-center/wx-dao";
private static String modelPack = "com.src.model";
//Mapper.java + Mapper.xml 存放路径和包名
private static String mapperPack = "com.src.mapper";
private static String targetProjectSql = "wechat-center/wx-service/src/main/resources/";
private static String sqlmapperPack = mapperPack;
//Repository 存放的路径和包名
private static String targetRepository = "wechat-center/wx-service";
private static String repositoryPack = "com.src.repository";
// 远程接口Facade 的路径和包名
private static String targetProjectRpcApi = "wechat-center/wx-facade";
private static String rpcPack = "com.src.rpcapi";
// 远程接口FacadeImpl 实现类 的路径和包名
private static String targetProjectRpcService = "wechat-center/wx-service";
private static String rpcServerPack = "com.src.rpcapi.impl";
//数据库名
private static String DATABASE = "activity";
//需要生成的数据表前缀
private static String TABLE_PREFIX = "wechat_keyword_";
//创建人
private static String author = "src";
private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.driver");
private static String JDBC_URL = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.url");
private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.username");
private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.password");
// 需要insert后返回主键的表配置,key:表名,value:主键名
private static Map LAST_INSERT_ID_TABLES = new HashMap<>();
static {
//TODO ..
LAST_INSERT_ID_TABLES.put("wechat_keyword_activity", "id");
}
/**
* 自动代码生成
* @param args
*/
public static void main(String[] args) throws Exception {
MybatisGeneratorUtil.generator(
null,
true,//是否生成Facade 层
targetProjectDao,targetProjectSql,targetProjectRpcApi,targetProjectRpcService,
targetRepository,modelPack,mapperPack,repositoryPack,sqlmapperPack,rpcPack,rpcServerPack,
JDBC_DRIVER,JDBC_URL,JDBC_USERNAME,JDBC_PASSWORD,
DATABASE,TABLE_PREFIX,LAST_INSERT_ID_TABLES,author
);
}
}
在Dao的resources新建一个generator.properties文件
generator.jdbc.driver=com.mysql.jdbc.Driver
generator.jdbc.url=jdbc:mysql://XXXXX:3306/activity
generator.jdbc.username=root
generator.jdbc.password=root
run main方法 就会自动生成以wechat_keyword_为前缀的所有表的数据
可以重复run 无需担心覆盖自己写的扩展Sql
生成效果
参与贡献
Fork 本项目
新建 Feat_xxx 分支
提交代码
新建 Pull Request
码云特技
使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
GVP 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目