springboot mybatis访问数据库
创建项目请参照
更多的时候我们使用mybatis-plus,本章可以直接跳过直接查看,springboot 集成mybatis-plus https://qq829.cn/book/books/bbcbf/page/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依赖
<!--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>
增加数据库连接配置
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
@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<UserDTO> 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.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);
}
}