springboot实现批量添加
时间: 2023-11-17 12:02:15 浏览: 78
springboot项目在Oracle下测试批量添加和批量删除
实现批量添加可以使用Spring Boot中的JdbcTemplate和BatchPreparedStatementSetter。具体步骤如下:
1.在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
```
2.创建实体类和DAO层接口,使用@Mapper注解标记DAO层接口。
3.在application.yml配置文件中配置数据源和MyBatis。
4.在Service层中注入JdbcTemplate和DAO层接口。
5.编写批量添加方法,使用JdbcTemplate的batchUpdate()方法和BatchPreparedStatementSetter接口实现批量添加。
具体代码如下:
```
// 实体类
public class User {
private Integer id;
private String name;
private Integer age;
// 省略getter和setter方法
}
// DAO层接口
@Mapper
public interface UserDao {
void batchInsert(List<User> userList);
}
// Service层
@Service
public class UserService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private UserDao userDao;
public void batchInsert(List<User> userList) {
String sql = "INSERT INTO user(name, age) VALUES (?, ?)";
jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
User user = userList.get(i);
ps.setString(1, user.getName());
ps.setInt(2, user.getAge());
}
@Override
public int getBatchSize() {
return userList.size();
}
});
}
}
// Controller层
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/batchInsert")
public String batchInsert() {
List<User> userList = new ArrayList<>();
userList.add(new User(null, "Tom", 18));
userList.add(new User(null, "Jerry", 20));
userService.batchInsert(userList);
return "success";
}
}
```
阅读全文