springboot mybatis架构
时间: 2023-08-25 22:05:56 浏览: 30
Spring Boot和MyBatis是非常流行的Java Web开发框架,它们可以很好地配合使用。下面是一个简单的Spring Boot和MyBatis的架构:
1. 数据库配置
在application.properties文件中配置数据库连接信息,例如:
```
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
```
2. DAO层
使用MyBatis的Mapper注解定义DAO接口,例如:
```java
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user WHERE id=#{id}")
User getUserById(Integer id);
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
void insertUser(User user);
@Update("UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}")
void updateUser(User user);
@Delete("DELETE FROM user WHERE id=#{id}")
void deleteUser(Integer id);
}
```
3. Service层
在Service层中注入DAO层,并实现业务逻辑,例如:
```java
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User getUserById(Integer id) {
return userMapper.getUserById(id);
}
public void insertUser(User user) {
userMapper.insertUser(user);
}
public void updateUser(User user) {
userMapper.updateUser(user);
}
public void deleteUser(Integer id) {
userMapper.deleteUser(id);
}
}
```
4. 控制层
在Controller层中注入Service层,并定义接口,例如:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User getUserById(@PathVariable Integer id) {
return userService.getUserById(id);
}
@PostMapping("/")
public void insertUser(@RequestBody User user) {
userService.insertUser(user);
}
@PutMapping("/")
public void updateUser(@RequestBody User user) {
userService.updateUser(user);
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Integer id) {
userService.deleteUser(id);
}
}
```
这样就完成了一个简单的Spring Boot和MyBatis的架构。其中,数据库配置、DAO层、Service层、控制层都分别承担了不同的职责,实现了代码的解耦和模块化。