mybatis-plus
Springboot3 整合 mybatis-plus 内容
一、导入依赖
<!-- 数据库链接依赖-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<!-- mybatis-plus依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3</version>
</dependency>
二、编写配置文件
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/user?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false
username: root
password: 200718
mybatis-plus:
mapper-location: classpath:/mapper/*.xml
typeAliasesPackage: com.yun.entity
三、定义模型 entity 实体类
注意: 这里实现的 Serializable 序列化接口是可有可无的,不是plus必须的!
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("sys_user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String userName;
private String nickName;
private String password;
private String status;
private String email;
private String phonenumber;
private String sex;
private String avatar;
private String userType;
private Long createBy;
private LocalDateTime createTime;
private Long updateBy;
private LocalDateTime updateTime;
private Integer delFlag;
}
四、在启动类上添加注解,表示mapper接口所在位置
注意: 如果接口上面有 注解 @Mapper 的话,就可以不用在使用扫描包注解 @MapperScan 了(当然两个可以同时存在)
@SpringBootApplication
@MapperScan("com.yun.mapper") // 扫描的mapper
public class Springboot3MybatisPlusApplication {
public static void main(String[] args) {
SpringApplication.run(Springboot3MybatisPlusApplication.class, args);
}
}
五、定义mapper接口
注意: 最好要加上 @Mapper注解,防止忘记开启扫描,这里要继承 BaseMapper 才能使用 mybatis-plus的方法(在这里已经完成了基础方法的设定,要更难的实现需要自己写 xml)
@Mapper
public interface UserMapper extends BaseMapper<User> {
List<User> getAllUser();
}
六、定义mapper.xml映射文件
注意:头文件这里的网站链接是没有 www 的,且能识别到 文件时,里面的 SQL 是有颜色的,否则就是白色
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yun.mapper.UserMapper">
<select id="getAllUser" resultType="com.yun.entity.User">
select * from sys_user
</select>
</mapper>
七、service层
注意: 接口和实现类最好把 @Service 加上,否则会出现找不到 bean 的问题
1、接口:
@Service
public interface IUserService extends IService<User> {
List<User> getAllUser();
}
2、实现类:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> getAllUser() {
return userMapper.getAllUser();
}
}
八、测试
这里测试是调用Service层的,也可以调用Mapper层来实现 查询
@SpringBootTest
class Springboot3MybatisPlusApplicationTests {
@Autowired
private UserMapper userMapper;
@Qualifier("userServiceImpl")// 指定注入的bean
@Autowired
private IUserService userService;
@Test
void contextLoads() {
System.out.println(userMapper.getAllUser());
}
@Test
void test(){
System.out.println(userService.getAllUser());
}
}