MyBatis-Plus
简称MP,是一个MyBatis的增强工具,在原有的基础上只做增强不做改变,为简化开发,提升效率而生
特点
“润物无声”:只做增强不做改变,引入它不会对现有的工程产生影响。 “效率至上”:只需要简单配置,即可CRUD操作 “丰富功能”:热加载,代码生成,分页,性能分析等功能一应俱全 复制代码
入门案例MP–查找所有
创建springboot 2.0以上版本(版本在2.0以下的,jdbc中的配置数据会有所不同,具体之后会说明),创建数据库,mybatis_plus 包含相关的字段(id,name,age,email)
一、首先在pom.xml引入相关依赖
org.springframework.boot spring-boot-starter
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </dependency> <!--mybatis-plus 持久层--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- lombok用来简化实体类--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> </dependencies> 复制代码
二、创建实体(这里用User 表中的id ,name,age,email 做相关操作实例)
import lombok.Data; @Data public class User { // 在添加lombok插件后,使用data注解,省去get,set private Long id; private String name; private Integer age; private String email; } 复制代码
三、创建UserMapper,让它继承内置的BaseMapper
//核心代码,让UserMapper继承内置的BaseMapper (内置CRUD方法) @Repository public interface UserMapper extends BaseMapper<User> { } 复制代码
BaseMapper中自带了CRUD方法
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // package com.baomidou.mybatisplus.core.mapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Param; public interface BaseMapper<T> extends Mapper<T> { int insert(T entity); int deleteById(Serializable id); int deleteByMap(@Param("cm") Map<String, Object> columnMap); int delete(@Param("ew") Wrapper<T> wrapper); 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); } 复制代码
四、编写测试,运行结果
首先在SpringBoot中的启动类添加MapperScan扫描UserMapper的路径
@MapperScan("com.zeus.demomp.mapper") public class DemompApplication { public static void main(String[] args) { SpringApplication.run(DemompApplication.class, args); } } 复制代码
然后在test目录下进行测试,首先添加自动注入@AutoWired将UserMapper注入,编写查找所有的测试方法
class DemompApplicationTests { @Autowired private UserMapper userMapper; @Test //查找全部 public void fillAll() { List<User> users = userMapper.selectList(null); System.out.println(users); } } 复制代码
结果如图:
网络异常,图片无法展示
|
拓展
这里引用了lombok进行实体的简化,省去get,set方法等等在Spring版本不同,jdbc配置信息区别
网络异常,图片无法展示
|
网络异常,图片无法展示
|