Spring boot + MyBatis + idea
程序员文章站
2022-07-15 10:18:47
...
一、步骤
1.1 配置文件里内容
spring.datasource.url=jdbc:mysql://localhost:3306/maven?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123
1.2 创建实体类
package com.example.demo.mappers;
public class User {
private int id;
private String sname;
public User() {
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", sname='" + sname + '\'' +
'}';
}
}
1.3 创建接口
- @Component, @Service, @Controller, @Repository是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理
- @Component是通用注解,其他三个注解是这个注解的拓展,并且具有了特定的功能
- @Repository注解在持久层中,具有将数据库操作抛出的原生异常翻译转化为spring的持久层异常的功能。
- @Controller层是spring-mvc的注解,具有将请求进行转发,重定向的功能。
- @Service层是业务逻辑层注解,这个注解只是标注该类处于业务逻辑层。
@Mapper注解:
作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类
添加位置:接口类上面
@MapperScan
作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类
添加位置:是在Springboot启动类上面添加,
@Mapper
@Repository("userMapper")
public interface UserMapper {
@Select("Select * from Student")
List<User> listAll();
}
1.4 进行Junit单元测试
@RunWith就是一个运行器
@RunWith(JUnit4.class)就是指用JUnit4来运行
@RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境
@RunWith(Suite.class)的话就是一套测试集合,
@SpringBootTest注解是SpringBoot自1.4.0版本开始引入的一个用于测试的注解。
@使用@Autowired的原理是
其实在启动spring IoC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器,当容器扫描到@Autowied、@Resource或@Inject时,就会在IoC容器自动查找需要的bean,并装配给该对象的属性
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {
@Autowired
UserMapper userMapper;
@Test
public void testlistAll() throws Exception{
List<User> users = userMapper.listAll();
for (User user : users) {
System.out.println(user.toString());
}
}
}
1.5 添加的依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13-beta-3</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.7.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
</dependencies>
推荐阅读
-
spring boot整合spring-kafka实现发送接收消息实例代码
-
详解Spring Boot下Druid连接池的使用配置分析
-
使用 Spring Boot 2.0 + WebFlux 实现 RESTful API功能
-
Spring boot进行参数校验的方法实例详解
-
Spring Boot RabbitMQ 延迟消息实现完整版示例
-
spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
-
Spring Boot 2.0快速构建服务组件全步骤
-
Spring boot+beetl+i18n国际化处理的方法
-
Spring Boot中的那些条件判断的实现方法
-
SpringBoot入坑笔记之spring-boot-starter-web 配置文件的使用