这里简单描述一下自动生成的目录结构与使用方法
使用步骤如下
修改config.properties
,主要修改的内容如下:
在idea的Terminal中
执行:
#执行下面的命令./gradlew gen2
生成的文件在log
,系统会先删除上次生成的代码,避免重复生成。
生成完毕后,建议去log
目录中检查一下代码。
生成的代码有:
生成的代码结构如下,可以按照需要来使用
├── main│ └── java│ └── com│ └── wukong│ └── dev│ ├── controller│ │ └── StudentController.java # Controller代码│ ├── mapper│ │ ├── base # 不建议修改的代码│ │ │ ├── StudentDynamicSqlSupport.java│ │ │ └── StudentMapper.java│ │ └── StudentDao.java # 可以修改的,便于维护│ ├── model│ │ └── Student.java # 对象实体类│ └── service│ ├── base # 不建议修改的代码│ │ └── BaseStudentService.java│ └── StudentService.java # 可以修改的└── test├── java│ └── com│ └── wukong│ └── dev│ └── controller│ └── StudentControllerTests.java # 自动化测试代码└── resources└── mock└── Student.json # mock数据
在下面代码的基础上,可以添加特殊的业务逻辑。
实现了
列表查询(可以分页,指定 where 条件或者排序字段)
根据 ID 查询单条记录
删除某条记录
添加或保存某条记录
@Tag(name="")@RestController@RequestMapping("${wukong.mall.admin.api-prefix:/api/admin}/example")public class StudentController {@Autowiredprivate StudentService StudentService;@Tag(name="XXXX")@Operation(summary = "得到AAAA列表:可分页、检索、排序")@PostMapping("/getStudentList")@AntdResultpublic AbstractListResponse<Student> getStudentList(@RequestBody AntSearchListParams params){return StudentService.selectByAntSearchByPage(params);}@Tag(name="XXXX")@Operation(summary = "通过ID得到某个AAAA")@GetMapping("/getStudentById")@AntdResultpublic Student getStudentById(@RequestParam Integer StudentId){return StudentService.selectById(StudentId);}@Tag(name="XXXX")@Operation(summary = "根据ID删除AAAA")@GetMapping("/delStudentById")@AntdResultpublic int delStudentById(@RequestParam Integer StudentId){return StudentService.deleteByPrimaryKey(StudentId);}@Tag(name="XXXX")@Operation(summary = "新增或更新AAAA")@PostMapping("/saveStudent")@AntdResultpublic int saveStudent(@RequestBody Student Student){return StudentService.insertOrUpdateSelective(Student);}}
这是一个空的 Service,以在里面添加不是系统自动生成的方法。
@Servicepublic class StudentService extends BaseStudentService {}
这是一个空的Dao
,可以在里面添加不是系统自动生成的方法。
@Mapperpublic interface StudentDao extends StudentMapper {}
尽量不修改自动生成的代码,避免每次表结构变更后,Merge 代码的工作。
一些复杂的数据库操作与 Controller 操作,见后面的文档说明