1.mybatis-plus的配置步骤和mybatis一样,引入依赖
//引入 MyBatis-Plus 之后不要再次引入 MyBatis 以及 MyBatis-Spring,以避免因版本差异导致的问题
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
2.springboot启动类添加接口扫描 @MapperScan
@MapperScan("com.yuchen.demo.mpdemo.dao")
@SpringBootApplication
public class MpdemoApplication {
application.properties添加 xml文件扫描路径
logging.level.com.yun.votesystem.dao=debug
#数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://47.113.113.217:3306/jd_shop?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Chongqing
spring.datasource.username=root
spring.datasource.password=My@123456
#MybatisPlus
# 关闭MP3.0自带的banner
mybatis-plus.global-config.banner=false
#关闭驼峰映射规则
#mybatis-plus.configuration.map-underscore-to-camel-case=false
#主键类型 auto:数据库ID自增, input:用户输入ID, id_worker:全局唯一数字ID, UUID,全局唯一字符串ID (id_worker 的字符串表示)
mybatis-plus.global-config.db-config.id-type=uuid
#新增和删除数据时,是否忽略空数据,默认是not_null
#not_null:如果某个字段为null,就不对该字段做修改
#ignored:允许字段的null值写入数据库
mybatis-plus.global-config.db-config.insert-strategy=ignored
mybatis-plus.global-config.db-config.update-strategy=ignored
mybatis-plus.config-location=classpath:mybatis/mybatis-config.xml
mybatis-plus.mapper-locations=classpath:mybatis/mapper/*.xml
//mybatis.mapper-locations=com/yuchen/test/vuedemo/dao/xml/*.xml 或者是放在dao层下,如果放在dao层需要在pom.xml中
//向maven声明,构建项目的class目录时创建xml文件,否则运行时每个dao接口绑定不上xml文件
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
3.实体类添加表名,和id的对应属性
@TableName("region") //该实体类对应数据库哪个表
public class Region implements Serializable {
@TableId(value = "id",type = IdType.AUTO) //主键是否是自增的,如果是,并配置此注解,那么在insert成功后会把
private Integer id; //自增id注入到对象中,相当于把mybatis的自增注入简化了
private Integer pid;
@TableField(value = "uname") //如果数据库字段和实体类不一致,可以设置value手动指定
private String name;
@TableField(exist = false)//exist为false时,表示此变量不为数据库字段
private Integer level
4.dao层接口继承MP的工具类接口
public interface RegionMapper extends BaseMapper<Region> {
}
5.service层接口也继承MP通用的服务接口,并声明该接口用于哪个实体类
public interface RegionService extends IService<Region> {
}
6.业务层实现类声明,并继承MP通用的工具类,该工具类提供了大量的crud方法
@Service
public class RegionServiceImpl extends ServiceImpl<RegionMapper,Region> implements RegionService {
@Autowired
private RegionMapper regionMapper;
}
7.测试
@SpringBootTest
class MpdemoApplicationTests {
@Autowired
RegionService regionService;
@Test
void contextLoads() {
IPage<Region> page=new Page<>(1,10); //使用Page分页插件+Querywarrp测试,查询成功,但是得到的数据是随机
IPage<Region> iPage = regionService.page(page, null); //混乱的,因为还没配置分页的配置类
System.err.println(iPage.getRecords());
}
}
分页的配置类 :springboot方式
@Configuration
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
}
配置完后再测试,数据正常,并且大部分的CRUD方法已经实现了
MP如果要配置二级缓存,需要使用2.0.4以下的版本,以上的版本二级缓存被优化了,不会使用二级的,需要额外配置,可百度