SpringBoot项目中对数据库的基本操作+批量插入数据的优化
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class DataService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Transactional
public void batchInsert(List<Data> dataList) {
String sql = "INSERT INTO your_table (column1, column2) VALUES (?, ?)";
jdbcTemplate.batchUpdate(sql, dataList, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
Data data = dataList.get(i);
ps.setString(1, data.getColumn1());
ps.setString(2, data.getColumn2());
}
@Override
public int getBatchSize() {
return dataList.size();
}
});
}
}
这个代码示例展示了如何在Spring Boot项目中使用JdbcTemplate
的batchUpdate
方法来执行批量插入操作。通过实现BatchPreparedStatementSetter
接口,可以有效地处理数据集合,并且通过使用事务注解@Transactional
来保证操作的原子性。
评论已关闭