easyexcel表格导入数据controller,service的写法
时间: 2024-11-22 22:40:49 浏览: 19
通过EasyExcel+线程池实现百万级数据从Excel导入到数据库
在使用EasyExcel进行表格导入数据的过程中,通常会将控制器(Controller)、服务层(Service)和持久层(Repository)分开处理。这里是一个简化版的步骤示例:
**1. 控制器(Controller)部分:**
```java
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.excel.EasyExcel;
import com.example.demo.service.ImportDataService;
@Controller
public class ImportDataController {
@Autowired
private ImportDataService importDataService;
@PostMapping("/import")
public String importData(@RequestParam("file") MultipartFile file) {
try {
EasyExcel.read(file.getInputStream(), YourModel.class)
.sheet(0) // 如果有多张工作表可以选择指定
.doRead(data -> importDataService.importData(data));
return "success"; // 返回成功提示
} catch (Exception e) {
log.error("Import data failed", e);
return "error";
}
}
}
```
**2. 服务层(Service)部分:**
```java
import com.example.demo.entity.YourModel;
import com.example.demo.repository.YourRepository;
@Service
public class ImportDataService {
private final YourRepository yourRepository;
public ImportDataService(YourRepository yourRepository) {
this.yourRepository = yourRepository;
}
public void importData(List<YourModel> dataList) {
dataList.forEach(model -> yourRepository.save(model));
}
}
```
**3. 持久层(Repository)部分:**
```java
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.demo.entity.YourModel;
@Repository
public interface YourRepository extends JpaRepository<YourModel, Long> {
}
```
在这个例子中,控制器负责接收上传的文件并调用服务进行处理;服务层负责解析Excel数据并将它们保存到数据库;而Repository用于操作实际的数据存储。
阅读全文