SQL不想写咋办?交给Mybatis-plus,立马给你安排
Mybatis-plus是谁?这么牛
Mybatis-plus建立在Mybatis的基础上,是Mybatis的一个增强工具,在Mybatis上只做增强,不做改变,因为它为我们封装好了大量常用的增删改查的功能。我们直接拿来用即可,无需自己再创建映射文件写SQL语句了。
Mybatis-plus如何使用
一、创建SpringBoot项目,添加依赖
创建SpringBoot项目的步骤,我之前有写过,可以点击Spring,似春天般的
创建完成后,添加依赖如下:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
添加了三个依赖。
第一个依赖是Mybatis-plus的依赖,是我们今天的主角。
第二个依赖是连接MySQL数据库的依赖,已经见过很多次了。
第三个依赖简化代码,提升效率的,我们在创建实体类时往往需要创建get、set、toString等方法,但如果有这个依赖,我们就可以省掉这些繁琐的步骤。
二、在SpringBoot项目的配置文件application.yml配置连接MySQL所需的数据源信息
配置如下:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
username: root
password: 1234
无论是yml文件还是properties文件都是可以作为配置文件的。只是它们的格式有所不同。
根据自己的个人风格来选吧。我比较喜欢用yml。
三、创建实体类
实体类代码如下:
import lombok.Data;
@Data
public class Team {
private Integer id;
private String name;
private String location;
private Integer age;
}
这里的实体类只需创建属性就可以了,看到@Data注解了吗?这个注解会根据所创建的属性把get、set、toString等方法自动创建好。
四、创建映射接口(Mapper)
接口代码如下:
public interface TeamMappper extends BaseMapper<Team> {
}
这个接口没有创建任何方法,关键在于它继承的BaseMapper接口,当TeamMapper继承该接口后,它无需编写 mapper.xml 文件,就可获得CRUD功能,所以也就没创建其他方法的需要了。
关于BaseMapper内部的方法解析,此处可以参考:Mybatis-Plus 之BaseMapper 方法详解
五、创建service层的业务逻辑类
代码如下:
@Service
public class TeamServiceImpl implements TeamService {
@Resource
private TeamMappper teamMappper;
@Override
public List<Team> selectTeamList() {
List<Team> teamList = teamMappper.selectList(null);
return teamList;
}
}
@Service注解是SpringBoot对Service层实现类的一个标识,同时把该类注入到Spring容器里。
@Resource注解根据属性类型或属性名称在Spring容器里找到相对应的实现类进行赋值。
selectTeamList()方法是查询Team表的所有数据记录并返回结果。
六、创建controller层的控制类
代码如下:
@Controller
@RequestMapping("team")
public class TeamController {
@Resource
private TeamService teamService;
@ResponseBody
@RequestMapping("list")
public List<Team> selectList(){
return teamService.selectTeamList();
}
}
@ResponseBody注解标识响应的是数据,而不是跳转页面。
其他注解,在之前写的SpringMVC里已经介绍过了。
七、测试结果
运行SpringBoot项目
输入网址:http://localhost:8080/team/list
测试结果如下: