mybatisplus模板
时间: 2025-06-03 21:40:20 浏览: 12
### MyBatis-Plus 模板 示例代码 使用教程
MyBatis-Plus 是一款增强型的 MyBatis 框架,提供了许多便捷的功能来简化开发过程。其内置的代码生成器可以帮助开发者快速生成项目所需的各类模板文件,包括实体类、Mapper 接口及其 XML 文件、Service 层以及 Controller 层等。
#### 1. BaseMapper 的功能概述
BaseMapper 是 MyBatis-Plus 提供的一个通用 Mapper 类,它封装了许多常用的 CRUD 方法,适用于大多数场景下的数据访问需求[^1]。通过继承 BaseMapper<T> 并指定泛型 T(即操作的实体类型),可以轻松调用这些预定义的方法完成增删改查的操作。
#### 2. Velocity 模板引擎介绍
Velocity 是一种基于 Java 的模板引擎,广泛应用于动态网页和其他文本生成任务中。MyBatis-Plus 利用了 Velocity 来构建自己的代码生成工具链。以下是 Velocity 的一些核心特性:
- **变量声明与赋值**: 可以使用 `$varName` 表达式引用变量。
- **条件判断**: 支持 `#if`, `#else`, 和 `#end` 结构用于逻辑分支处理。
- **循环结构**: 借助 `#foreach` 遍历集合或者数组中的元素。
- **宏定义 (Macro)**: 定义可重用的小片段以便多次调用[#macro][^2].
#### 3. 自定义模板配置流程
为了满足特定业务的需求, 开发者可以通过修改默认提供的 velocity 模板来自定义生成的内容:
##### a. 修改公共部分 (`common.vm`)
此文件通常保存了一些全局共享的信息比如包路径前缀设置等[^2]:
```java
package ${packagePath}.entity;
import lombok.Data;
@Data
public class ${className} {
...
}
```
##### b. 调整 Entity 模板 (`entity.java.vm`)
该模板负责创建 POJO 对象表示数据库表记录:
```java
package ${packagePath}.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
@TableName("${tableName}")
public class ${className} implements Serializable{
@TableField(value="${column.field}", exist=${column.exist})
private Object ${column.property};
}
```
##### c. 更新 Mapper Interface Template(`mapper.java.vm`)
描述 DAO 层接口如何映射到 SQL 执行语句上:
```java
package ${packagePath}.mapper;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Mapper
public interface ${className}Mapper extends BaseMapper<${entity}> {}
```
##### d. 编辑 Service Layer Templates(`service.java.vm & serviceImpl.java.vm`)
分别对应抽象服务契约和服务具体实现细节的设计模式应用实例化展示如下所示:
```java
// IService.java.vm
package ${packagePath}.service;
import com.baomidou.mybatisplus.extension.service.IService;
public interface I${className}Service extends IService<${entity}> {}
//ServiceImpl.java.vm
package ${packagePath}.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class ${className}ServiceImpl extends ServiceImpl<${mapper}, ${entity}> implements I${className}Service{}
```
##### e. 构建 RESTful API Controllers(`controller.java.vm`)
最后一步就是设计暴露给前端使用的 HTTP 请求入口点控制器层组件了:
```java
@RestController
@RequestMapping("/api/${path}/${tableEntityLower}")
public class ${className}Controller {
@Autowired
private final I${className}Service i${className}Service;
@PostMapping("")
public ResponseEntity<?> save(@RequestBody ${className} dto){
return new ResponseEntity<>(i${className}Service.save(dto), HttpStatus.CREATED);
}
@GetMapping("/{id:\\d+}")
public ResponseEntity<?> findById(@PathVariable Long id){
Optional<${className}> result=i${className}Service.findById(id);
return result.map(record->ResponseEntity.ok().body(record))
.orElse(ResponseEntity.notFound().build());
}
...
}
```
#### 4. 启动代码生成功能
当所有的模板都准备好之后就可以运行官方文档里提到的方式启动自动化的脚本执行环节从而得到最终产物啦!
---
###
阅读全文
相关推荐

















