生成代码详解

这里简单描述一下自动生成的目录结构与使用方法

1. 目录结构

生成的代码结构如下,可以按照需要来使用

├── main
│   └── java
│   └── com
│   └── wukong
│   └── dev
│   ├── controller
│   │   └── ProColumnController.java # Controller代码
│   ├── mapper
│   │   ├── base # 不建议修改的代码
│   │   │   ├── ProColumnDynamicSqlSupport.java
│   │   │   └── ProColumnMapper.java
│   │   └── ProColumnDao.java # 可以修改的,便于维护
│   ├── model
│   │   └── ProColumn.java # 对象实体类
│   └── service
│   ├── base # 不建议修改的代码
│   │   └── BaseProColumnService.java
│   └── ProColumnService.java # 可以修改的
└── test
├── java
│   └── com
│   └── wukong
│   └── dev
│   └── controller
│   └── ProColumnControllerTests.java # 自动化测试代码
└── resources
└── mock
└── ProColumn.json # mock数据

2. 代码说明

在下面代码的基础上,可以添加特殊的业务逻辑。

2.1 Controller

  • 添加了 Swagger 注解

  • 实现了

    • 列表查询(可以分页,指定 where 条件或者排序字段)

    • 根据 ID 查询单条记录

    • 删除某条记录

    • 添加或保存某条记录

@Tag(name="")
@RestController
@RequestMapping("${wukong.mall.admin.api-prefix:/api/admin}/example")
public class ProColumnController {
@Autowired
private ProColumnService proColumnService;
@Tag(name="XXXX")
@Operation(summary = "得到AAAA列表:可分页、检索、排序")
@PostMapping("/getProColumnList")
@AntdResult
public AbstractListResponse<ProColumn> getProColumnList(@RequestBody AntSearchListParams params){
return proColumnService.selectByAntSearchByPage(params);
}
@Tag(name="XXXX")
@Operation(summary = "通过ID得到某个AAAA")
@GetMapping("/getProColumnById")
@AntdResult
public ProColumn getProColumnById(@RequestParam Integer proColumnId){
return proColumnService.selectById(proColumnId);
}
@Tag(name="XXXX")
@Operation(summary = "根据ID删除AAAA")
@GetMapping("/delProColumnById")
@AntdResult
public int delProColumnById(@RequestParam Integer proColumnId){
return proColumnService.deleteByPrimaryKey(proColumnId);
}
@Tag(name="XXXX")
@Operation(summary = "新增或更新AAAA")
@PostMapping("/saveProColumn")
@AntdResult
public int saveProColumn(@RequestBody ProColumn proColumn){
return proColumnService.insertOrUpdateSelective(proColumn);
}
}

2.2 Service

这是一个空的 Service,以在里面添加不是系统自动生成的方法。

@Service
public class ProColumnService extends BaseProColumnService {
}

2.3 Dao

这是一个空的Dao,可以在里面添加不是系统自动生成的方法。

@Mapper
public interface ProColumnDao extends ProColumnMapper {
}

3. 其他技巧

  • 尽量不修改自动生成的代码,避免每次表结构变更后,Merge 代码的工作。

  • 一些复杂的数据库操作与 Controller 操作,见后面的文档说明