springboot 集成数据库
创建项目请参照
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依赖
<!--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>
创建数据库
创建Entity(实体)与数据库结构保持一致
在实体上增加注解 @Data
@Data
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
注意 @Mapper
注解
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user")
List<UserEntityUserDTO> findAll(selectList();
}
编写Controller
// 全局访问路径
@RequestMapping("/")
// 标记为本类为Controller类
@RestController
@Slf4j
public class HomeController {
private final UserMapper userMapper;
public HomeController(UserMapper userMapper) {
this.userMapper = userMapper;
}
@RequestMapping("/")
public Object hello() {
List list = userMapper.findAll(selectList();
return list;
}
}
修改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);
}
}