SpringBoot整合Mybatis
开发流程
IDEA 创建空Maven项目
创建模块,选择Spring Initializr模块
命名注意Artifact不能使用大写字符
pom配置中,使用idea会自动生成,和mybatis整合,还需要导入以下的坐标
<!--mybatis起步依赖 命名格式表示mybatis提供--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!-- MySQL连接驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies>
疑问点: 如果不添加下面的配置,第一次运行比较慢,可能是自己网络原因
<plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin>
分层如图
如果controller层不在springboot目录下,那么需要在启动类使用注解
// 创建时产生的注解 @SpringBootApplication // Dao层/Mapper层使用的注解 @MapperScan(basePackages = "cn.qyh.dao") // 如果不在springbootmybatis3包下,那必须指定需要扫描的包,该注解表示,扫描qhy下的包 @ComponentScan("cn.qyh.*") public class Springbootmybatis3Application { public static void main(String[] args) { SpringApplication.run(Springbootmybatis3Application.class, args); } }
application.yml中配置
- resources文件夹和dao包/mapper包结构一样时,不需要再mybatis下指定位置
spring: datasource: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8 driverClassName: com.mysql.jdbc.Driver username: root password: 556677 mybatis: type-aliases-package: cn.lau.bean
- resources文件夹和dao包/mapper包结构一样时,不需要再mybatis下指定位置
Controller层
@RestController public class UserController { @Autowired private UserDao userDao; @RequestMapping("/show") public List<User> showAll(){ return userDao.queryAll(); } }
注意
- 使用yml的优先级高于propert
- 注解的配置
- SSM的落伍
- Spring全家桶