excel文件导入的同时转换数据类型

BobbyLou 发布于 2015/06/23 10:01
阅读 363
收藏 0

大家好.我写了导入功能,在service层写的上传方法

@Override
	public void uploadMedicalService(ArrayList<ArrayList> excelData) {
		ArrayList<Organ> organsList = new ArrayList<Organ>();
		
		Integer dataSize = excelData.size();
		for(int i=0; i<dataSize; i++) {
			ArrayList rowData = excelData.get(i);
			Organ organ = new Organ();
			//这里是excel行数列数对应的数据库表中的字段名
			
			//这里判断某个单元格不为空执行,如果为空.执行continue,结束本次循环
			if ((rowData.get(3).toString()).length()!=0) {
				organ.setOrgCode(rowData.get(3).toString());
				organ.setOrgName(rowData.get(1).toString());
				//这里的字段不能为空.而文件中没有这字段,然后要获取当前时间
				organ.setCreateTime(new Date());
				rowData = null;
				organsList.add(organ); organ = null;
			}
			//如果超过300数据************************************************
			//当如果最后一行为空 上一个if语句continue;执行后就不继续执行这个if语句
			if(i!=0 && i%300==0) {
				System.out.println("************300300300300300");
				organDao.bathAddMedicalService(organsList);
				organsList.clear();
			}
			//如果作为最后一行数据就清楚
			if(i == (dataSize-1)) {
				System.out.println("************"+organsList);
				//在这里写,从excel获得的值,插入到Dictionary中查询对应的编码.然后再插入到organ表中
				organDao.bathAddMedicalService(organsList);
				organsList.clear();
			}
		}
		
		organsList = null;
	}
因为excel文件的某列,都是中文格式,

而插入数据库,要求是整数型.NUMBER.

我的思路是,获取excel文件的某列的值,作为数组列表(ArrayList),然后在字典表中查询对应的字段(比如中国对应00001),然后拿查出来的值,再插入我要插入的表中.

那么问题来了.

1.我SSH框架,数据实体就一张表,已经生成好了dao dto blh action等,怎么加入字典表实体类呢?

2.如何拿从excel文件获取的值,在service层中的Java,在这个判断语句中,添加查询sql语句的方法?

if(i == (dataSize-1))

在代码里面处理的思路就是 关键列那个数据赋值之前 先从数据库字典表查询出结果然后循环把excle读的数据 替换再赋值给dto 

由于本人没学过SSH,但要完成开发任务,所以大家说的技术术语有些本人不太懂,还是直白点的指导我菜鸟吧.谢谢!

加载中
返回顶部
顶部