在spring boot项目中使用MyBatis操作数据库
时间: 2023-05-31 11:05:36 浏览: 66
1. 添加MyBatis和MyBatis-Spring依赖
在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
```
2. 配置数据源
在application.properties文件中配置数据源信息,例如:
```
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
```
3. 创建实体类和Mapper接口
创建实体类和Mapper接口,例如:
```
public class User {
private Long id;
private String username;
private String password;
// 省略getter和setter方法
}
public interface UserMapper {
User selectById(Long id);
void insert(User user);
void update(User user);
void delete(Long id);
}
```
4. 编写Mapper.xml文件
在resources目录下创建mapper目录,并创建UserMapper.xml文件,编写SQL语句,例如:
```
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectById" parameterType="java.lang.Long" resultType="com.example.entity.User">
select * from user where id = #{id}
</select>
<insert id="insert" parameterType="com.example.entity.User">
insert into user (username, password) values (#{username}, #{password})
</insert>
<update id="update" parameterType="com.example.entity.User">
update user set username = #{username}, password = #{password} where id = #{id}
</update>
<delete id="delete" parameterType="java.lang.Long">
delete from user where id = #{id}
</delete>
</mapper>
```
5. 配置MyBatis
在application.properties文件中添加以下配置:
```
mybatis.mapper-locations=classpath:mapper/*.xml
```
6. 注册Mapper接口
在启动类中添加@MapperScan注解,例如:
```
@SpringBootApplication
@MapperScan("com.example.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
7. 使用Mapper接口操作数据库
在需要使用Mapper接口的地方,通过@Autowired注解注入Mapper接口,并调用其方法,例如:
```
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/user/{id}")
public User getUserById(@PathVariable Long id) {
return userMapper.selectById(id);
}
@PostMapping("/user")
public void addUser(@RequestBody User user) {
userMapper.insert(user);
}
@PutMapping("/user")
public void updateUser(@RequestBody User user) {
userMapper.update(user);
}
@DeleteMapping("/user/{id}")
public void deleteUserById(@PathVariable Long id) {
userMapper.delete(id);
}
}
```