当前位置: 首页 > news >正文

网站制作农业百度手机助手app下载安装

网站制作农业,百度手机助手app下载安装,yy头像在线制作网站,海口网站建设兼职上一篇博客已经基本介绍了EasyExcel的配置与基本使用方法。现在准备使用EasyExcel将Excel文件保存至数据库。 1.由于我们想每读取Excel中的N条记录后将这些记录全部写入数据库中。所以首先我们在Mybatis文件内先要写一个批量保存Excel文件中的记录的sql语句。 <insert id&q…

        上一篇博客已经基本介绍了EasyExcel的配置与基本使用方法。现在准备使用EasyExcel将Excel文件保存至数据库。

1.由于我们想每读取Excel中的N条记录后将这些记录全部写入数据库中。所以首先我们在Mybatis文件内先要写一个批量保存Excel文件中的记录的sql语句。

    <insert id="insertBatch">insert into dict (id ,parent_id ,name ,value ,dict_code) values<foreach collection="list" item="item" index="index" separator=",">(#{item.id} ,#{item.parentId} ,#{item.name} ,#{item.value} ,#{item.dictCode})</foreach></insert>

随后在Mapper接口中定义insertBatch方法。

public interface DictMapper extends BaseMapper<Dict> {void insertBatch(List<ExcelDictDTO> list);}

2. 首先创建相应的实体类(对应Excel表中一个记录)的监听器。

@Slf4j
public class ExcelDictDTOListener extends AnalysisEventListener<ExcelDictDTO> {private List<ExcelDictDTO> excelDictDTOList=new ArrayList<>();private static final int BATCH_COUNT=10;private DictMapper dictMapper;//传入mapper对象public ExcelDictDTOListener(DictMapper dictMapper) {this.dictMapper = dictMapper;}@Overridepublic void invoke(ExcelDictDTO excelDictDTO, AnalysisContext analysisContext) {log.info("data:{}",excelDictDTO);excelDictDTOList.add(excelDictDTO);if(excelDictDTOList.size()>=BATCH_COUNT){saveData();excelDictDTOList.clear();}}@Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {// 不足BATCH_COUNT数的记录在这里存储if(excelDictDTOList.size()>0)saveData();log.info("所有数据解析完成!");}private void saveData() {log.info("{}条数据,开始存储数据库!", excelDictDTOList.size());// 批量插入dictMapper.insertBatch(excelDictDTOList);log.info("存储数据库成功!");}
}

3.创建相关的服务类,读取Excel数据流的内容。

@Service
public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements DictService {@Transactional@Overridepublic void importDictDataByExcel(InputStream inputStream){EasyExcel.read(inputStream, ExcelDictDTO.class,new ExcelDictDTOListener(dictMapper)).sheet().doRead();}}

4.创建相关Controller,通过getInputStream方法获取excel文件的数据流。

@Api("数据字典的管理")
@RestController
@RequestMapping("/admin/core/dict")
@Slf4j
@CrossOrigin
public class AdminDictController {@Autowiredprivate DictService dictService;@ApiOperation("导入Excel表")@PostMapping("/import")public R importExcel(@RequestParam("file")MultipartFile file){try {InputStream inputStream=file.getInputStream();dictService.importDictDataByExcel(inputStream);return R.ok().message("导入成功");}catch (Exception e){throw new BusinessException(ResponseEnum.UPLOAD_ERROR,e);}}
}

在编写代码时,逻辑顺序为步骤1-2-3-4,但在实际调用时逻辑顺序为步骤4-3-2-1。

http://www.zhongyajixie.com/news/4350.html

相关文章:

  • linux网站如何做ip解析如何让百度搜索到自己的网站
  • 做明星简介网站侵权吗百度新闻首页新闻全文
  • 旅游网站 建设平台分析网站降权查询工具
  • 外贸网站建设不可缺少的灵活性品牌策划案
  • 中信建设有限责任公司崔玮福建seo关键词优化外包
  • 个人站长做哪些网站好滁州网站seo
  • 免费网站自动跳转seo零基础教学视频
  • 微企点网站建设的教学视频seo排名首页
  • 可以做外链的网站网络推广外包内容
  • 织梦手机网站模板下载百度助手app下载
  • 郑州做网站建设的公司竞价培训课程
  • 周口市规划建设局网站北京优化seo公司
  • 建网站租服务器多少钱重庆seo团队
  • 中小企业网站建设服务公司模板免费网站建设
  • 营销型网站建设必备功能dw网页设计模板网站
  • 做淘客网站备案如何做网络营销推广
  • 新注册网站百度引擎搜索推广
  • 做网站语言服务器 空间推广普通话宣传语100字
  • 论职能网站建设百度竞价推广效果怎么样
  • 百度商标查询域名查询seo
  • 南宁国贸网站建设知识营销案例
  • 橙子建站广告怎么做网站外链怎么发布
  • 网站大全app下载google 网站推广
  • 网站建设设计开发论文3500字58精准推广点击器
  • 网站登录人数实时更新如何做职业培训机构排名
  • 网站建设是怎么一回事搜索引擎优化策略
  • 做网站设计前景怎么样seo培训公司
  • 河北省住房和城乡建设厅网站鹤壁网络推广哪家好
  • 黄骅市网站建设价格搜索推广开户
  • 专业网站建设制国际新闻稿件