springboot增删改查案例
时间: 2023-09-10 16:10:53 浏览: 117
好的,以下是一个简单的 Spring Boot 增删改查案例,使用 MySQL 数据库。
### 准备工作
1. 创建一个名为 `test` 的 MySQL 数据库。
2. 在 `test` 数据库中创建一个名为 `user` 的表,表结构如下:
```sql
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`age` int NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
```
3. 在 `application.properties` 文件中添加数据库连接信息:
```
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
```
### 创建实体类
创建一个名为 `User` 的实体类,代码如下:
```java
public class User {
private Integer id;
private String name;
private Integer age;
// 省略 getter 和 setter 方法
}
```
### 创建 DAO 层
创建一个名为 `UserDao` 的接口,代码如下:
```java
public interface UserDao {
List<User> findAll();
User findById(Integer id);
void save(User user);
void update(User user);
void deleteById(Integer id);
}
```
### 创建 DAO 层实现类
创建一个名为 `UserDaoImpl` 的 DAO 层实现类,代码如下:
```java
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<User> findAll() {
String sql = "SELECT id, name, age FROM user";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
}
@Override
public User findById(Integer id) {
String sql = "SELECT id, name, age FROM user WHERE id = ?";
return jdbcTemplate.queryForObject(sql, new Object[]{id}, new BeanPropertyRowMapper<>(User.class));
}
@Override
public void save(User user) {
String sql = "INSERT INTO user(name, age) VALUES (?, ?)";
jdbcTemplate.update(sql, user.getName(), user.getAge());
}
@Override
public void update(User user) {
String sql = "UPDATE user SET name = ?, age = ? WHERE id = ?";
jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getId());
}
@Override
public void deleteById(Integer id) {
String sql = "DELETE FROM user WHERE id = ?";
jdbcTemplate.update(sql, id);
}
}
```
### 创建 Service 层
创建一个名为 `UserService` 的接口,代码如下:
```java
public interface UserService {
List<User> findAll();
User findById(Integer id);
void save(User user);
void update(User user);
void deleteById(Integer id);
}
```
### 创建 Service 层实现类
创建一个名为 `UserServiceImpl` 的 Service 层实现类,代码如下:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public List<User> findAll() {
return userDao.findAll();
}
@Override
public User findById(Integer id) {
return userDao.findById(id);
}
@Override
public void save(User user) {
userDao.save(user);
}
@Override
public void update(User user) {
userDao.update(user);
}
@Override
public void deleteById(Integer id) {
userDao.deleteById(id);
}
}
```
### 创建 Controller 层
创建一个名为 `UserController` 的 Controller 层,代码如下:
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public List<User> findAll() {
return userService.findAll();
}
@GetMapping("/users/{id}")
public User findById(@PathVariable("id") Integer id) {
return userService.findById(id);
}
@PostMapping("/users")
public String save(@RequestBody User user) {
userService.save(user);
return "success";
}
@PutMapping("/users")
public String update(@RequestBody User user) {
userService.update(user);
return "success";
}
@DeleteMapping("/users/{id}")
public String deleteById(@PathVariable("id") Integer id) {
userService.deleteById(id);
return "success";
}
}
```
至此,一个简单的 Spring Boot 增删改查案例就完成了。现在你可以启动应用程序,然后使用 Postman 或其他工具测试接口是否正常工作。
注意:这里只是一个简单的示例,实际项目中可能需要更多的功能和处理。
阅读全文