Apache POI操作分批导入MySQL数据库
发布时间:2023-02-20 10:45:32 所属栏目:Apache 来源:互联网
导读:poi介绍: Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文件。 POI使用到的相关maven依赖坐标如下: dependency groupIdorg.apache.poi/g
case Cell.CELL_TYPE_FORMULA: //公式 cellValue = String.valueOf(cell.getCellFormula()); break; case Cell.CELL_TYPE_BLANK: //空值 cellValue = ""; break; case Cell.CELL_TYPE_ERROR: //故障 cellValue = "非法字符"; break; default: cellValue = "未知类型"; break; } return cellValue; } } 2.2.1、创建批量上传控制器 这里使用的dubbo远程调用了接口方法 /** * 项目名称:health_parent * 描述:预约管理控制器 * * @author zhong * @date 2022-06-18 14:50 */ @RestController @RequestMapping("/ordersetting") public class OrderSettingController { /** * 远程调用预约管理的服务接口 */ @Reference private OrderSettingService orderSettingService; /** * 文件上传,实现预约管理的批量导入 * @param excelFile * @return */ @RequestMapping("/upload") public Result upload(@RequestParam("excelFile") MultipartFile excelFile){ try { // 1、使用工具类解析上传的数据 List<String[]> list = POIUtils.readExcel(excelFile); // 将读取的表格数据转换为表格预约对象数据 List<OrderSetting> data = new ArrayList<>(); // 2、处理解析的数据 for (String[] strings : list) { // 获取到导入数据行的第一个单元格(预约时间) String orderSate = strings[0]; // 获取到导入数据行的第二个单元格(预约姓名) String number = strings[1]; // 将重新获取到的数据添加到预约集合中 OrderSetting orderSetting = new OrderSetting(new Date(orderSate), Integer.parseInt(number)); data.add(orderSetting); } // 2、通过dubbo远程调用服务实现数据批量导入到数据库 orderSettingService.add(data); } catch (IOException e) { e.printStackTrace(); return new Result(false, MessageConstant.IMPORT_ORDERSETTING_FAIL); } return new Result(true, MessageConstant.IMPORT_ORDERSETTING_SUCCESS); } } import com.alibaba.dubbo.config.annotation.Service; import com.itheima.pojo.OrderSetting; import com.zcl.dao.OrderSettingDao; import com.zcl.service.OrderSettingService; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * 项目名称:health_parent * 描述:预约管理接口实现类 * * @author zhong * @date 2022-06-18 15:09 */ @Service(interfaceClass = OrderSettingService.class) @Transactional public class OrderSettingImpl implements OrderSettingService { /** * 注入保存数据 */ @Autowired private OrderSettingDao orderSettingDao; /** * 批量上传业务实现 * @param data */ @Override public void add(List<OrderSetting> data) { // 判断集合数据是否为空 if(data != null && data.size() > 0){ // 判断当前日期是否已经进行了预约设置 for (OrderSetting datum : data) { // 根据日期查询预约消息 long count = orderSettingDao.findCountByOrderDate(datum.getOrderDate()); if(count > 0){ // 已进行预约管理,执行更新操作 orderSettingDao.editNumberByOrderDate(datum); }else{ // 添加预约设置 orderSettingDao.add(datum); (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |