springboot excel上传并且存入oracle数据库
2018-10-19 06:30:38来源:博客园 阅读 ()
上一篇写了springboot 下载excel 模板,目前有个需求是把 下载的excle 填上数据 上传,并且保存的数据库,这边只针对后台操作
@Transactional 事务标识
@RequestMapping(value = "/upload")
@ResponseBody
public RetData<String> upload(HttpServletRequest request) throws Exception {
RetData<String> retData = new RetData<String>();
//获取multipartRequest
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 获得文件
MultipartFile multipartFile = multipartRequest.getFile("file");// 与前端设置的fileDataName属性值一致
Workbook book = null;
List<OutDataGr> demoList = new ArrayList<OutDataGr>();
// 判断是xls还是xlsx
try {
book = new HSSFWorkbook(new POIFSFileSystem(multipartFile.getInputStream()));
} catch (Exception ex) {
book = new XSSFWorkbook(multipartFile.getInputStream());
};
int numberOfSheets = book.getNumberOfSheets();
for (int i = 0; i < numberOfSheets; i++) {
Sheet sheet = book.getSheetAt(i);
// 获取sheet中有多少行,遍历每一行
int physicalNumberOfRows = sheet.getPhysicalNumberOfRows();
for (int j = 0; j < physicalNumberOfRows; j++) {
if (j == 0) {
continue;// 标题行
}
OutDataGr gr = new OutDataGr();
Row row = sheet.getRow(j);// 获得当前行数据
gr.setName(row.getCell(0).getStringCellValue()); // 姓名
if (row.getCell(1) != null) {
row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);//设置cell里面的数据类型
gr.setZjhm(row.getCell(1).getStringCellValue());// 身份证号
}
if (row.getCell(2) != null) {
row.getCell(2).setCellType(Cell.CELL_TYPE_STRING);
String sex = row.getCell(2).getStringCellValue();
if ("男".equals(sex)) {
gr.setSex("1"); // 性别:男
} else {
gr.setSex("2");// 性别:女
}
}
if (row.getCell(3) != null) {
row.getCell(3).setCellType(Cell.CELL_TYPE_STRING);
gr.setAge(row.getCell(3).getStringCellValue());// 年龄
}
gr.setId('1');
demoList.add(gr);
}
}
// 批量保存数据
outDataGrBPO.batchSave(demoList);
retData.setRetBody("添加成功");
return retData;
}
最后吐槽下 ,因为楼主用的mybatis要批量保存到oracle 里面,网上好多都是mysql的。。没注意,试了好多,
结果发现数据库不一样,直接也贴出来吧
<!-- oracle批量保存用户,并返回每个用户插入的ID -->
<insert id="batchSave" parameterType="java.util.List">
insert into GAS_OUT_DATA_GR
(
ID,NAME,SEX,AGE,ZJHM,SCNY,SCR,TYPE,RECORD_ID
)
<foreach collection="list" open="(" close=")" index="" item="item" separator="union all" >
select
#{item.id},#{item.name},#{item.sex},#{item.age},#{item.zjhm},
#{item.scny},#{item.scr},#{item.type},#{item.recordId}
from dual
</foreach>
</insert>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
- 构建自己的jar包上传至Mvaen中央仓库和版本更新 2020-06-11
- nacos~配置中心功能~springboot的支持 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash