一、MyBatis-Plus简介
MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
官网文档地址: 简介 | MyBatis-Plus
二、SpringBoot集成MybatisPlus
第一步:通过maven坐标将mybatis-plus-boot-starter以及数据库驱动引入到Spring Boot项目里面来。注意:引入mybatis-plus-boot-starter的项目就不需要引入mybatis-spring-boot-starter了
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
第二步:保证application.yml里面有数据库连接的配置。
spring:
datasource:
url: jdbc:mysql://192.168.161.3:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: test
password: 4rfv$RFV
driver-class-name: com.mysql.cj.jdbc.Driver
第三步:配置Mybatis的Mapper类文件的包扫描路径
@SpringBootApplication
@MapperScan(basePackages = {"com.zimug.boot.launch.generator","com.zimug.boot.launch.mapper"})
public class BootLaunchApplication {
public static void main(String[] args) {
SpringApplication.run(BootLaunchApplication.class, args);
}
}
三、Mapper继承实现
如果我们操作数据库中的article表,我们需要按照article表的结构创建一个实体类。
@Data
public class Article {
private Long id;
private String author;
private String content;
private String title;
private Date createtime;
}
然后写一个接口ArticleMapper ,继承自BaseMapper,泛型是Article实体类。
public interface ArticleMapper extends BaseMapper<Article> {
}
BaseMapper中默认帮我们提供了若干的增删改查基础实现,由于ArticleMapper 继承自BaseMapper
,所以ArticleMapper 可以使用这些方法去操作数据库的article表。
四、增删改查实现代码
@Service
public class ArtivleServiceImpl implements ArticleService {
@Resource
protected Mapper dozerMapper;
@Resource
private ArticleMapper articleMapper;
//新增
@Override
public void saveArticle(ArticleVO article) {
Article articlePO = dozerMapper.map(article,Article.class);
articleMapper.insert(articlePO);
}
//删除
@Override
public void deleteArticle(Long id) {
articleMapper.deleteById(id);
}
//更新
@Override
public void updateArticle(ArticleVO article) {
Article articlePO = dozerMapper.map(article,Article.class);
articleMapper.updateById(articlePO);
}
//查询
@Override
public ArticleVO getArticle(Long id) {
return dozerMapper.map(articleMapper.selectById(id),ArticleVO.class);
}
//查询所有
@Override
public List<ArticleVO> getAll() {
List<Article> articles = articleMapper.selectList(null);
return DozerUtils.mapList(articles,ArticleVO.class);
}
}
MybatisPlus的功能十分强大,还有很多有意义的功能,比如:逻辑删除、自动填充、代码生成等都非常有意义,能很大程度上提高我们的开发效率。
我们这本书主要核心是Spring Boot,所以主要内容也是讲解在Spring Boot中如何集成MybatisPlus,更多的内容的学习可以参考我写的mybatis plus的文档(免费),地址:mybatisplus小书
五、MybatisPlus与Mybatis XML
Mybatis Plus只是对Mybatis的增强,所以在使用mybatis plus的项目里面仍然可以使用mybatis xml的语法来实现ORM SQL映射(特别是动态SQL的书写)。
但是需要将扫描路径配置进行简单的调整,原始的配置是这样的
mybatis:
mapper-locations: classpath:generator/*.xml
调整之后的配置是这样的
mybatis-plus:
mapper-locations: classpath:generator/*.x