springboot 集成mybatis-plus
创建项目
create-springboot-project: https://qq829.cn/book/books/bbcbf/page/create-springboot-project
集成数据库
注意:如果你是按create-springboot-project创建的项目,需要删除配置
# application.yml
spring:
autoconfigure:
# 阻止Spring Boot自动配置数据源
exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
约定与名词解释
- entity(实体),与数据表,代表一张真实的数据表
- DAO(数据访问对象),访问数据库的接口或实例,在spring-boot中,有时候有喜欢取名为Mapper
- DTO(数据传输对象),含业务领域的数据(既包含entity,但是应该多余entity),但不包含业务逻辑
增加pom依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-bom</artifactId>
<version>3.5.10</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--mysql支持-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<!--mybatis支持-->
<!--如果使用 mybatis plus 请将 mybatis 支持 去掉, mybatis plus 会自动处理依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.10</version>
</dependency>
增加数据库连接配置
spring:
datasource:
url: jdbc:mysql://127.0.0.1:33306/dataway?charset=utf8mb4&serverTimezone=Asia/Shanghai
username: <root>
password: <password>
driver-class-name: com.mysql.cj.jdbc.Driver
创建数据库
创建Entity(实体)与数据库结构保持一致
注意 @Data 和 @TableName("user") 注解
@Data
@TableName("user")
public class UserEntity {
private Integer id;
private String name;
private Integer age;
private String email;
}
创建DTO
这个可以后创建或者先直接继承于Entity,注意 @Data
注解
@Data
public class UserDTO extends UserEntity {
}
创建DAO
@Mapper
public interface UserDao extends BaseMapper<UserDTO> {
}
创建Service
public interface UserService {
List<UserDTO> selectList();
List<UserDTO> selectList2();
}
@Service
public class UserServiceImpl implements UserService {
private final UserMapper userMapper;
private final UserDao userDao;
public UserServiceImpl(UserMapper userMapper, UserDao userDao) {
this.userMapper = userMapper;
this.userDao = userDao;
}
@Override
public List<UserDTO> selectList() {
List list = userDao.selectList(null);
return list;
}
@Override
public List<UserDTO> selectList2() {
return userMapper.selectList();
}
}
创建Controller
// 全局访问路径
@RequestMapping("/")
// 标记为本类为Controller类
@RestController
@Slf4j
public class HomeController {
private UserService userService;
public HomeController(UserService userService) {
this.userService = userService;
}
@RequestMapping("/")
public Object hello() {
List list = userService.selectList();
List list2 = userService.selectList2();
return Map.of("list", list, "list2", list2);
}
}
修改Application
注意 @MapperScan("com.iovhm.dataway.**.dao")
@SpringBootApplication
@MapperScan("com.iovhm.dataway.**.dao")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}