10分钟上手Mybatis Common Mapper:低代码平台的数据库操作革命
【免费下载链接】Mapper Mybatis Common Mapper - Easy to use 项目地址: https://gitcode.com/gh_mirrors/ma/Mapper
你还在手写重复的SQL语句吗?还在为简单的CRUD操作编写大量样板代码吗?本文将带你10分钟快速上手Mybatis Common Mapper(通用Mapper),体验低代码开发带来的效率提升,彻底解放双手,让数据库操作变得简单高效。
读完本文你将获得:
- 了解Mybatis Common Mapper的核心优势
- 掌握在Spring Boot项目中快速集成通用Mapper的方法
- 学会使用通用Mapper进行基本的数据库CRUD操作
- 了解通用Mapper的高级特性和最佳实践
什么是Mybatis Common Mapper
Mybatis Common Mapper是一个基于MyBatis的通用Mapper框架,它提供了一系列通用的CRUD接口,可以极大地简化数据库操作代码的编写。通过继承通用Mapper提供的接口,开发者无需编写XML映射文件和SQL语句,即可快速实现对单表的增删改查操作。
官方文档:README.md
通用Mapper的核心设计理念是"约定优于配置",通过注解和接口继承的方式,自动生成SQL语句,减少重复劳动,提高开发效率。它支持多种数据库方言,包括MySQL、SQL Server等,并且可以与Spring、Spring Boot等主流框架无缝集成。
快速集成:Spring Boot项目配置
添加依赖
在Spring Boot项目中集成通用Mapper非常简单,只需在pom.xml中添加以下依赖:
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
依赖配置文件:spring-boot-starter/pom.xml
配置应用属性
一般情况下,通用Mapper不需要额外配置即可使用。如果需要自定义配置,可以在application.properties中添加相关属性:
# 配置自定义Mapper接口
mapper.mappers[0]=tk.mybatis.sample.mapper.BaseMapper
# 数据库方言配置
mapper.identity=MYSQL
配置属性提示:
启动类配置
在Spring Boot启动类上添加@MapperScan注解,指定Mapper接口所在的包路径:
@SpringBootApplication
@MapperScan("com.example.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Spring集成模块:spring/
核心接口:BaseMapper详解
通用Mapper的核心是BaseMapper接口,它整合了常用的CRUD操作方法。该接口位于tk.mybatis.mapper.common包下,定义如下:
@RegisterMapper
public interface BaseMapper<T> extends
BaseSelectMapper<T>,
BaseInsertMapper<T>,
BaseUpdateMapper<T>,
BaseDeleteMapper<T> {
}
BaseMapper源码:base/src/main/java/tk/mybatis/mapper/common/BaseMapper.java
通过继承BaseMapper,我们的Mapper接口将自动获得以下几类方法:
- 查询操作:包括根据ID查询、查询所有、条件查询等
- 插入操作:包括保存实体、批量保存等
- 更新操作:包括根据ID更新、条件更新等
- 删除操作:包括根据ID删除、条件删除等
实战演练:快速实现CRUD操作
定义实体类
首先创建一个与数据库表对应的实体类,使用JPA注解进行映射:
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
// 省略getter和setter方法
}
实体类示例:base/src/test/java/tk/mybatis/mapper/model/User.java
创建Mapper接口
创建UserMapper接口,继承BaseMapper:
public interface UserMapper extends BaseMapper<User> {
// 无需编写任何方法,直接继承BaseMapper的所有操作
}
执行数据库操作
现在就可以在Service中注入UserMapper,直接调用其方法进行数据库操作了:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
// 查询所有用户
public List<User> findAll() {
return userMapper.selectAll();
}
// 根据ID查询用户
public User findById(Long id) {
return userMapper.selectByPrimaryKey(id);
}
// 新增用户
public int save(User user) {
return userMapper.insert(user);
}
// 更新用户
public int update(User user) {
return userMapper.updateByPrimaryKey(user);
}
// 删除用户
public int delete(Long id) {
return userMapper.deleteByPrimaryKey(id);
}
}
Service实现示例:spring/src/test/java/tk/mybatis/mapper/annotation/SpringAnnotationTest.java
高级特性:条件查询与分页
条件查询
通用Mapper提供了Example类,可以方便地构建查询条件:
// 创建查询条件
Example example = new Example(User.class);
example.createCriteria()
.andEqualTo("username", "admin")
.andGreaterThan("id", 10);
// 执行查询
List<User> users = userMapper.selectByExample(example);
Example类源码:core/src/main/java/tk/mybatis/mapper/entity/Example.java
分页查询
结合PageHelper分页插件,可以轻松实现分页功能:
// 设置分页参数
PageHelper.startPage(1, 10);
// 执行查询
List<User> users = userMapper.selectAll();
// 获取分页信息
PageInfo<User> pageInfo = new PageInfo<>(users);
分页插件推荐:PageHelper分页插件
最佳实践与注意事项
表名与字段映射
通用Mapper默认使用类名作为表名,属性名作为字段名。如果数据库表名或字段名与实体类不一致,可以使用@Table和@Column注解进行映射。
主键策略
通用Mapper支持多种主键生成策略,通过@GeneratedValue注解指定:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) // 自增主键
private Long id;
主键策略定义:core/src/main/java/tk/mybatis/mapper/annotation/KeySql.java
避免N+1查询问题
在关联查询时,应注意避免N+1查询问题,可以使用@Result注解定义关联查询,或使用MyBatis的延迟加载功能。
批量操作
对于批量插入、更新操作,推荐使用通用Mapper提供的批量操作方法,以提高性能:
// 批量插入
List<User> users = new ArrayList<>();
// 添加用户...
userMapper.insertList(users);
批量操作接口:extra/src/main/java/tk/mybatis/mapper/additional/insert/InsertListMapper.java
总结与展望
通过本文的介绍,我们了解了Mybatis Common Mapper的基本使用方法和核心优势。它通过提供通用的CRUD接口,极大地减少了重复代码的编写,提高了开发效率。结合Spring Boot框架,可以快速构建高效、简洁的数据库访问层。
通用Mapper还提供了许多高级特性,如动态SQL、存储过程支持、类型处理器等,等待你去探索和使用。
项目完整源码:gh_mirrors/ma/Mapper
希望本文能帮助你快速上手Mybatis Common Mapper,体验低代码开发带来的便利。如果你有任何问题或建议,欢迎在评论区留言讨论。
点赞+收藏+关注,获取更多MyBatis和低代码开发相关的实用教程!下期我们将介绍通用Mapper的高级特性和性能优化技巧,敬请期待!
【免费下载链接】Mapper Mybatis Common Mapper - Easy to use 项目地址: https://gitcode.com/gh_mirrors/ma/Mapper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




