Documentation

A good document is like an intriguing story.

Usage

基于 Mybatis-Plus 3.1.2 实现,只进行了简单扩展,使用方法请参考MP官网。

                                Copy
                                
<dependency>
    <groupId>net.dragonshard</groupId>
    <artifactId>dragonshard-data-mybatis</artifactId>
    <version>${latest.version}</version>
</dependency>
                                
                            

Base Class

Service

我们重写了通用 service,用于解决与 dynamic-datasource 的事物冲突导致切换数据源失败的情况。

net.dragonshard.dsf.data.mybatis.framework.service.IDsfService

net.dragonshard.dsf.data.mybatis.framework.service.impl.DsfServiceImpl

MyBatisController

为了方便进行分页查询,提供了可供继承的基础 MyBatisController。

里面实现了分页方法 getPage( boolean openSort ),参数为是否开启排序,默认false

                        
// 在一个 like 查询中的用法
QueryWrapper<Role> queryWrapper = new QueryWrapper<Role>();
queryWrapper.likeRight("role_name", roleName);
roleService.page(this.getPage(), queryWrapper).convert(e -> e.convert(RoleDTO.class))
                        
                    

分页参数是通过 request.getParameter() 获取的,见下表

参数名 默认值 类型/选项 描述
pageNum Integer 页数
pageSize Integer 分页大小,默认10,最大50
ascs String 排序字段 ASC
descs String 排序字段 DESC
openPaging true true / false 是否开启查询分页

Code Generator

对 Mybatis-Plus 提供的 generator 进行简单封装,默认实现了常用的约定配置,后期会对这部分做深度扩展,提供更多的可配置选项。

使用方法,通过 main() 调用。

                        Copy
                        
    public static void main(String[] args){
        // 包含的表集合
        String[] inCludeTableNames = {
                "sys_user",
                "sys_role",
                "sys_user_role"
        };

        MybatisCodeGenerator mybatisGenerator = new MybatisCodeGenerator();
        mybatisGenerator.getDataSourceConfig()
                .setDriverName("com.mysql.jdbc.Driver")
                .setUrl("jdbc:mysql://localhost:3306/dragonshard_sample_master?useUnicode=true&characterEncoding=UTF8")
                .setUsername("root")
                .setPassword("123456");

        mybatisGenerator.getStrategyConfig()
                .setInclude(inCludeTableNames)
                // 去除前缀
                .setTablePrefix("sys_");

        mybatisGenerator.getPackageConfig()
                .setParent("net.dragonshard.sample")
                .setEntity("model.entity");

        mybatisGenerator.getGlobalConfig()
                .setBaseResultMap(false)
                // XML columList
                .setBaseColumnList(false)
                .setOpen(false)
                .setAuthor("dragonshard.net")
                .setSwagger2(false);

        mybatisGenerator.execute();
    }