mysql导入的excel更新_excel导入数据库,存在则更新不存在添加

public voidexcelToDB() throws ParseException {

String datapath= this.getParameter("datapath");

String filePath= AppUtil.getAppAbsolutePath()+datapath;

Workbook rwb= null;try{//创建输入流

InputStream stream = newFileInputStream(filePath);//获取Excel文件对象

rwb =Workbook.getWorkbook(stream);

}catch(Exception e) {

e.printStackTrace();

}//导入文件

Sheet rs = rwb.getSheet(0);//表

int rows = rs.getRows();//得到所有的行

for(int i=1;i

Map map = null;//如果busreqno,entno为空则添加

String busregno = rs.getCell(0,i).getContents();

String entno= rs.getCell(2,i).getContents();

map= yksptBuildManager.getEntityDao().findObjectBySql("sql查询语句",busregno);if(map == null && !"".equals(entno) && entno!= null) {

map= yksptBuildManager.getEntityDao().findObjectBySql("sql查询语句",entno);

}if(map == null) {

map= new HashMap();

}//没查到就插入数据库

所导入实体类 entity = new所导入的实体类();

boolean flag= false;if(map.size() != 0) {

entity= yksptBuildManager.getEntityDao().getById((String)map.get("所导入表id"));

flag= true;

}

entity.setBname(rs.getCell(1,i).getContents());

entity.setBaddress(rs.getCell(2,i).getContents());

entity.setOnesitekey(rs.getCell(3,i).getContents());

entity.setTwositekey(rs.getCell(5,i).getContents());//根据下标获取excle表中经度纬度,取逗号前0后1

String s=rs.getCell(6,i).getContents();

String[] ss=s.split(",");if(!"".equals(s) && s!= null) {

entity.setCoordinatesx (ss[0]);

entity.setCoordinatesy(ss[1]);

}if(!"".equals(rs.getCell(7,i).getContents())&& rs.getCell(7,i).getContents()!=null) {//根据excle表内数据匹配后台相对应状态,001,,002,003~~存入库内

entity.setBstreet(this.sysDictionaryManager.findDictNameByGroupkeyAndHvalue("ykspt.street",rs.getCell(7,i).getContents()));

}

entity.setManage(rs.getCell(8,i).getContents());

entity.setBtype(rs.getCell(9,i).getContents());

entity.setWorkstation(rs.getCell(10,i).getContents());

entity.setBuiltuparea(rs.getCell(12,i).getContents());

entity.setUpperarea(rs.getCell(13,i).getContents());

entity.setSparearea(rs.getCell(14,i).getContents());

entity.setPropertyunit(rs.getCell(15,i).getContents());if(flag) {//更新数据库

this.yksptBuildManager.update(entity);

}else{//插入数据

this.yksptBuildManager.save(entity);

}

System.out.println(i);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值