什么是MyBatis-Plus
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
mybatis plus 官网 :https://baomidou.com/
整合MyBatis-Plus
在pom中添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
mybatis plus 所有的配置类都在MybatisPlusAutoConfiguration中
@Configuration
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})
@ConditionalOnSingleCandidate(DataSource.class)
@EnableConfigurationProperties(MybatisPlusProperties.class)
@AutoConfigureAfter({DataSourceAutoConfiguration.class, MybatisPlusLanguageDriverAutoConfiguration.class})
public class MybatisPlusAutoConfiguration implements InitializingBean {
……
}
我们点进MybatisPlusProperties
发现MybatisPlusProperties
已经默认给我们配置好了sql的映射文件的路径classpath*:/mapper/**/*.xml,表示任意包的类路径下的所有mapper文件夹下任意路径下的所有xml都是sql映射文件。 建议以后sql映射文件,放在 mapper下。
接下去我们回到MybatisPlusAutoConfiguration中
发现SqlSessionFactory 自动配置好。底层是容器中默认的数据源;
SqlSessionTemplate容器也自动帮我们配好了
mybatis-plus和mybtais相比只需要我们的Mapper继承 BaseMapper 就可以拥有crud能力
测试
pojo层
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Blog {
private Integer id;
private String title;
private String author;
private Date create_time;
private Integer views;
}
Dao层
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zcm.pojo.Blog;
import java.util.List;
@Mapper
public interface BlogDao extends BaseMapper<Blog> {
}
当我们dao层继承了BaseMapper 就可以直接使用curd里,具体原因可以点进BaseMapper 自行查看
当然我们在实际的业务中不能直接去调用dao层 ,需要业务层去调用dao层,所以我们继续编写service层接口
import com.baomidou.mybatisplus.extension.service.IService;
import com.zcm.pojo.Blog;
public interface BlogrService extends IService<Blog> {
}
service层实现类
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zcm.dao.BlogrDao;
import com.zcm.pojo.Blog;
import com.zcm.service.UserService;
import org.springframework.stereotype.Service;
@Service
public class BlogServiceImpl extends ServiceImpl<BlogDao, Blog> implements BlogService {
}
测试类
@SpringBootTest
class SpringbootWebApplicationTests {
@Autowired
BlogService blogService;
@Test
void contextLoads() {
List<Blog> list = blogService.list();
for (Blog blog : list) {
System.out.println(blog);
}
}
}
运行成功:
最后mybatis plus 建议安装 MybatisX 插件