MyBatis-plus之快速入门
MyBatis-plus简述
MyBatis-plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。
内置代码生成器、内置分页插件、内置性能分析插件、内置全局拦截插件等。。。
快速应用
-
新建一个空的SpringBoot项目
-
引入依赖,MyBatis-plus依赖已经包含了MyBatis框架,所以不再引入MyBatis依赖:
这个依赖适配springboot3.x 版本
<!-- mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.30</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.20</version> </dependency> <!--mybatis-plus依赖--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.15</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.42</version> </dependency> <!-- web环境依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>- 编写springboot配置文件
spring: datasource: username: root password: root url: jdbc:mysql://localhost:3306/spring6?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&useUnicode=true driver-class-name: com.mysql.cj.jdbc.Driver -
编写Mapper接口
// 继承BaseMapper,BaseMapper内置了丰富的接口方法,这里就不用编写常用的方法了 // 而且这里方法对应的映射文件也不用写了 @Mapper public interface UserMapper extends BaseMapper<User> { }-
编写controller、service、impl、domain 代码:
@RestController public class UserController { @Autowired private UserService userService; @RequestMapping("/selectAll") public List<User> getUsers() { return userService.selectList(); } }@Data @NoArgsConstructor @AllArgsConstructor public class User { private Long id; private String name; private Integer age; private String email; }public interface UserService { List<User> selectList(); }@Service("userService") public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public List<User> selectList() { return userMapper.selectList(null); } }
-
此时打开对应的url([localhost:8080/selectAll](http://localhost:8080/selectAll)即可进行测试。
开启日志
在application.yml文件中配置如下:
mybatis-plus:
global-config:
# 去掉mybatis-plus在控制台输出的图标
banner: false
configuration:
# 开启日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
通用Mapper接口介绍
基础的增删改查
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
User user = new User();
user.setAge(13);
user.setId(1L);
user.setName("test");
// 简单新增方法
userMapper.insert(user);
// 简单根据id删除
userMapper.deleteById(2L);
user.setAge(22);
// 简单更新
userMapper.updateById(user);
// 简单查询
User user1 = userMapper.selectById(2L);
}
通用Service接口介绍
MyBatis-plus提供了IService接口和对应的实现类ServiceImpl。该实现类已经实现了一些对应的service方法,我们可以直接使用它提供的额方法来实现功能,不用亲自编写实现方法。
具体实现关系如下:

修改后的UserService接口如下:
public interface UserService extends IService<User> {
List<User> selectList();
}
修改后的UserServiceImpl方法如下:
@Service("userService")
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> selectList() {
return userMapper.selectList(null);
}
}
此时就可以用Service来插入数据等操作:
void testServiceCRUD(){
User user = new User();
user.setAge(13);
user.setId(1L);
user.setName("test");
// 新增
userService.save(user);
// 删除
userService.removeById(2L);
// 更新
user.setId(1L);
user.setName("test2");
userService.updateById(user);
// 查询
List<User> users = userService.selectList();
}
自定义Mapper接口方法
自定义的接口方法和实现与mybatis的实现方式一样。
Mapper接口:
@Mapper
public interface UserMapper extends BaseMapper<User> {
User selectByName(String name);
}
UserMapper.xml文件:
<mapper namespace="com.ali.mapper.UserMapper">
<select id="selectByName" resultType="com.ali.domain.User">
SELECT * FROM user where name = #{name}
</select>
</mapper>
注意:这里的mapper接口和UserMapper.xml文件必须处于同一个目录下。
本文来自博客园,作者:NE_STOP,转载请注明原文链接:https://www.cnblogs.com/alineverstop/p/19696240
浙公网安备 33010602011771号