IDEA的MyBatis的插件 - MyBatisX
MyBatisPlus官网
MyBatisPlus官方文档
MyBatisPlus是什么?
MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
添加依赖:**
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
MybatisPlusAutoConfiguration
配置类,MybatisPlusProperties
配置项绑定。SqlSessionFactory
自动配置好,底层是容器中默认的数据源。mapperLocations
自动配置好的,有默认值classpath*:/mapper/**/*.xml
,这表示任意包的类路径下的所有mapper
文件夹下任意路径下的所有xm``l
都是sql
映射文件。 建议以后sql映射文件放在mapper
下。- 容器中也自动配置好了
SqlSessionTemplate
。
@Mapper
标注的接口也会被自动扫描,建议直接@MapperScan("com.lun.boot.mapper")
批量扫描。
MyBatisPlus
优点之一:只需要我们的Mapper
继承MyBatisPlus
的BaseMapper
就可以拥有CRUD能力,减轻开发工作。
JavaBean类:
package com.wzy.springbootweb02.bean;
@Data//提供Getter、Setter方法
@NoArgsConstructor//提供无参构造方法
@AllArgsConstructor//提供全参构造
@TableName("person")//指定数据库的表名
public class Person {
private Integer id;
private String username;
private String gender;
private Integer age;
private String phone;
}
Dao层接口:
- 继承
BaseMapper<T>
。因为其中定义好了操作数据的方法,这样可以简化工作,也是MyBatisPlus
的特点。泛型写跟数据库对应的JavaBean
类。 ```java package com.wzy.springbootweb02.dao;
@Mapper//可在Dao层的接口上注明,也可以在 启动类上配置@MapperScan(“dao层的包路径”)
public interface PersonMapper extends BaseMapper
}
**service层的接口与对应的实现类:**<br />
- 使用`MyBatis Plus`提供的`IService`,`ServiceImpl`,减轻`Service层`开发工作。`CRU``D(增删改``查`)也不用写了。
- `IService`:`service层`的顶级接口,里面定义了一系列的`CRUD`。
- `ServiceImp`:service层的顶级实现类,继承了` BaseMapper<T>`,并实现` IService<T>`。。
```java
public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {}
service层
接口PersonService
继承IService<T>
,泛型为JavaBean类: ```java package com.wzy.springbootweb02.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.wzy.springbootweb02.bean.Person;
//继承 Iservice顶级接口 ,泛型为JavaBean类。
//
public interface PersonService extends IService
}
- `service层`的实现类 `PersonServiceImpl` **继承**`ServiceImpl`,泛型为Dao接口与JavaBean类。并**实现**`service层的接口`。
```java
package com.wzy.springbootweb02.service.impl;
@Service
public class PersonServiceImpl extends ServiceImpl<PersonMapper,Person> implements PersonService {
}