完成Mybatis的入门程序的扩展,要求在测试代码
时间: 2024-10-13 15:16:27 浏览: 5
在MyBatis中,完成一个入门级的程序并添加测试代码通常涉及以下几个步骤:
1. **设置环境**:
- 首先,你需要在项目中引入MyBatis依赖。如果你使用Maven,可以在`pom.xml`文件中添加`mybatis-spring-boot-starter`或单独的`mybatis`和`mysql-connector-java`。
2. **创建数据库资源**:
创建一个数据库配置文件,如`application.properties`或`application.yml`,配置数据库连接信息。
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/testdb
spring.datasource.username=root
spring.datasource.password=your_password
```
3. **Mapper接口**:
创建Mapper接口,例如`UserMapper.java`,包含你要操作数据库的方法。
```java
public interface UserMapper {
User selectUser(int id);
}
```
4. **XML映射文件**:
编写Mapper XML文件,如`mapper/UserMapper.xml`,定义SQL查询对应接口方法。
```xml
<mapper namespace="com.example.demo.UserMapper">
<select id="selectUser" resultType="com.example.demo.User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
```
5. **实体类**:
用户实体类`User.java`,用于存储从数据库返回的数据。
```java
public class User {
private int id;
private String name;
// getters and setters...
}
```
6. **Service层和Controller层**:
在Service层,你可以注入Mapper,并通过它调用数据库操作。Controller层则负责处理HTTP请求和响应。
7. **编写测试代码**:
使用Spring Boot的Junit5和Mockito等库,创建单元测试对Mapper方法进行测试。
```java
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import com.example.demo.User;
import com.example.demo.UserMapper;
import static org.mockito.Mockito.when;
import static org.junit.jupiter.api.Assertions.assertEquals;
class UserMapperTest {
@Autowired
private UserMapper userMapper;
@Test
void testSelectUser() {
// Mock 数据库查询结果
User expectedUser = new User(1, "John");
when(userMapper.selectUser(1)).thenReturn(expectedUser);
// 调用Mapper并验证结果
User actualUser = userMapper.selectUser(1);
assertEquals(expectedUser, actualUser);
}
}
```