1.介绍你对MybatisPlus的理解?
:::tips MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生(提供了快速使用mybatis的方式) :::
2.MybatisPlus和Mybatis是什么关系?
:::tips MybatisPlus是Mybatis的增强版,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 :::
3.MybatisPlus可以解决那些问题?
:::tips MybatisPlus可以实现单边的增删改查,增加开发效率 :::
4.MybatisPlus使用步骤?
第一步:导入mybatis依赖
<!--mybatisplus起步依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
第二部:配置mysql数据源
spring:
datasource:
url: jdbc:mysql://localhost:3306/mp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 1234
driver-class-name: com.mysql.jdbc.Driver
第三步:配置数据实体bean
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TbUser {
private Long id;
private String userName;
private String password;
private String name;
private Integer age;
private String email;
}
第四步:创建mapper接口并继承BaseMapper<T>
public interface UserMapper extends BaseMapper<TbUser> {
}
第五步:springboot启动类配置mapper包扫描,并交给spring
@MapperScan("com.itheima.mapper")
第六步:测试
@SpringBootTest
public class MybatisPlusTest {
@Autowired
private UserMapper userMapper;
@Test
public void mybatisPlusTest(){
TbUser tbUser = userMapper.selectById(1);
System.out.println(tbUser);
}
}
5.MybatisPlus-API方法介绍?
增加
int insert(T entity);
删除:
int deleteById(Serializable id);
int deleteByMap(@Param("cm") Map<String, Object> columnMap);
int delete(@Param("ew") Wrapper<T> queryWrapper);
int deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList);
修改:
int updateById(@Param("et") T entity);
int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper);
查找:
T selectById(Serializable id);
List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);
List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);
T selectOne(@Param("ew") Wrapper<T> queryWrapper);
Integer selectCount(@Param("ew") Wrapper<T> queryWrapper);
List<T> selectList(@Param("ew") Wrapper<T> queryWrapper);
List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> queryWrapper);
List<Object> selectObjs(@Param("ew") Wrapper<T> queryWrapper);
<E extends IPage<T>> E selectPage(E page, @Param("ew") Wrapper<T> queryWrapper);
<E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param("ew") Wrapper<T> queryWrapper);
Wrapper接口:
1.QueryWrapper: 查询
LambdaQueryWrapper
2.UpdateWrapper: 增删改
LambdaUpdateWrapper
eq( ) : 等于 =
ne( ) : 不等于 <>
gt( ) : 大于 >
ge( ) : 大于等于 >=
lt( ) : 小于 <
le( ) : 小于等于 <=
between ( ) : BETWEEN 值1 AND 值2
notBetween ( ) : NOT BETWEEN 值1 AND 值2
in( ) : in
notIn( ) :not in
6.MybatisPlus封装Service层的步骤?
:::tips
1.定义一个服务扩展接口,该接口继承公共接口IService;
2.定义一个服务实现类,该类继承ServiceImpl
注意事项:
1.ServiceImpl父类已经注入了UserMapper对象,名称叫做baseMapper,所以当前实现类直接可以使用baseMapper完成操作
2.因为ServiceImpl已经实现了IService下的方法,所以当前服务类没有必要再次实现思想:共性的业务代码交给框架封装维护,非共性的业务,在接口UserService定义,然后在当前的服务类下实现;
:::