jxl解析excel,存入数据库重复问题怎么解决

一只独孤的程序猿 2012-02-23 06:39:06
如题:
jxl解析excel,存入数据库重复问题怎么解决
现在实现的技术是jsp+servlet
我是批量的将excel文件导入数据库,基本已经实现,
但是在上传过程中,慢是一方面因素,还有最关键的是在上传过程中
尤其是客户,记不清楚自己有没有上传,结果重复提交了,那么这样通常怎么处理?
本来上传大量的数据的时候就很慢了,如果在上传过程中每个都匹配数据库的话
那不就更慢了吗?
这样的话怎么处理好呢?
...全文
256 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ldh911 的回复:]

看了你的问题,发现你还没理解我的建议,我建议你把这整个工作分为两个环节来处理。
1、负责用户交互环节,接收用户提给的任务,记录,并负责告知任务执行情况;
2、负责真正处理用户交给的任务,也就是你已经实现的代码,只不过将其改为批处理程序。
那么:

◎ 用户可以随时在数据库中看到所上传文件清单及处理状态;
处理清单的信息都包括?那么用于的信息内容比如是:客户联系方式,他的要求是每次查找……
[/Quote]
哦,这样做啊,我去试试
有问题再麻烦您
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ldh911 的回复:]

大数据量导入的,以我个人经验,是不建议在线处理的。

我们目前的做法一般是这样:
◎ JSP只负责上传文件,所上传文件将保存到文件系统中,文件及关联信息保存进数据库任务表;
◎ 用户可以随时在数据库中看到所上传文件清单及处理状态;
◎ 限制用户在上一个所上传文件没有处理完毕之前,不允许上传新文件(当然也可以做次数的限制,比如最多只能同时有2个未处理完毕的文件);
◎ 后台专门定时任务……
[/Quote]
我是初学者,部分不是很明白
比如:
◎ 用户可以随时在数据库中看到所上传文件清单及处理状态;
处理清单的信息都包括?那么用于的信息内容比如是:客户联系方式,他的要求是每次查找的时候,都能顺序的显示出他批量上传或逐条上传的信息,这样我值存一个处理清单?还是上传文件成功后,程序自己运行导入数据库;同时我还是不理解,如果批量导入的时候,个别信息重复怎么解决?
◎ 处理结果概况会回写数据库任务表;
这个具体是怎样一个处理方法,不好意思,我还不太理解
MiceRice 2012-02-24
  • 打赏
  • 举报
回复
看了你的问题,发现你还没理解我的建议,我建议你把这整个工作分为两个环节来处理。
1、负责用户交互环节,接收用户提给的任务,记录,并负责告知任务执行情况;
2、负责真正处理用户交给的任务,也就是你已经实现的代码,只不过将其改为批处理程序。
那么:

◎ 用户可以随时在数据库中看到所上传文件清单及处理状态;
处理清单的信息都包括?那么用于的信息内容比如是:客户联系方式,他的要求是每次查找的时候,都能顺序的显示出他批量上传或逐条上传的信息,这样我值存一个处理清单?还是上传文件成功后,程序自己运行导入数据库;同时我还是不理解,如果批量导入的时候,个别信息重复怎么解决?
——处理清单的信息主要包括:用户标识、任务提交时间、任务完成时间、任务规模、任务状态、任务标识;
——这个查询时只提供查询任务处理的情况,而不能直接查询到任务结果集;
——批量导入时,仍然要去数据库中比对,至于比对方式可以再讨论。


◎ 处理结果概况会回写数据库任务表;
这个具体是怎样一个处理方法,不好意思,我还不太理解
——回写就是在任务表中记录:任务完成时间,任务状态:完成。
dw_java08 2012-02-24
  • 打赏
  • 举报
回复
学习~~
MiceRice 2012-02-23
  • 打赏
  • 举报
回复
大数据量导入的,以我个人经验,是不建议在线处理的。

我们目前的做法一般是这样:
◎ JSP只负责上传文件,所上传文件将保存到文件系统中,文件及关联信息保存进数据库任务表;
◎ 用户可以随时在数据库中看到所上传文件清单及处理状态;
◎ 限制用户在上一个所上传文件没有处理完毕之前,不允许上传新文件(当然也可以做次数的限制,比如最多只能同时有2个未处理完毕的文件);
◎ 后台专门定时任务负责处理数据库任务表中所记录的未处理文件;
◎ 考虑到等待心态效应,会根据文件大小设置不同的处理线程池,比如:100行以下(或100KB以下)用6条线程处理;1000行以下的用2条线程处理;1000行以上的用1条线程处理。
◎ 处理结果概况会回写数据库任务表;

  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hepeng154833488 的回复:]

引用 1 楼 peng_hao1988 的回复:
在用户点击上传按钮后,立马把改按钮的事件禁用掉,或是用一个透明层盖上去,等成功了就跳到成功页面去提示上传成功,不跳转也行,在原来的页面中提示就可以。如果是用户重复上传同一文件,那么只有在后台通过文件名来区分了(如果你将上传后的文件名保存在数据库中,或是在服务器的某个目录下判断上传的文件是否存在)。

在用户点击上传按钮后,立马把改按钮的事件……
[/Quote]
这是我没有说清楚,还是你没有读清楚
hepeng_8 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 peng_hao1988 的回复:]
在用户点击上传按钮后,立马把改按钮的事件禁用掉,或是用一个透明层盖上去,等成功了就跳到成功页面去提示上传成功,不跳转也行,在原来的页面中提示就可以。如果是用户重复上传同一文件,那么只有在后台通过文件名来区分了(如果你将上传后的文件名保存在数据库中,或是在服务器的某个目录下判断上传的文件是否存在)。
[/Quote]
在用户点击上传按钮后,立马把改按钮的事件禁用掉,或是用一个透明层盖上去,等成功了就跳到成功页面去提示上传成功,不跳转也行,在原来的页面中提示就可以。如果是用户重复上传同一文件,那么只有在后台通过文件名来区分了(如果你将上传后的文件名保存在数据库中,或是在服务器的某个目录下判断上传的文件是否存在)。
  • 打赏
  • 举报
回复
有没有高手帮帮忙解决一下
顶帖
cczja 2012-02-23
  • 打赏
  • 举报
回复
学习中……
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 peng_hao1988 的回复:]

在用户点击上传按钮后,立马把改按钮的事件禁用掉,或是用一个透明层盖上去,等成功了就跳到成功页面去提示上传成功,不跳转也行,在原来的页面中提示就可以。如果是用户重复上传同一文件,那么只有在后台通过文件名来区分了(如果你将上传后的文件名保存在数据库中,或是在服务器的某个目录下判断上传的文件是否存在)。
[/Quote]
不好意思,我没有表达的很清楚
我现在是按照你的意思做的,点击以后button就会disabled,同时产生动态的进度条
但是我实现的对excel数据的操作时对立面的N条信息进行操作的,excel的文件名字可能不重复,但是
里面的数据会重复(可能存在,因为统计的时候有可能重复),这样数据库里面就会出现好多相同的信息
同时我的excel也没有存入数据库,就是里面的信息对应的列名称导入了数据库相应的字段名字下面
桃园闲人 2012-02-23
  • 打赏
  • 举报
回复
在用户点击上传按钮后,立马把改按钮的事件禁用掉,或是用一个透明层盖上去,等成功了就跳到成功页面去提示上传成功,不跳转也行,在原来的页面中提示就可以。如果是用户重复上传同一文件,那么只有在后台通过文件名来区分了(如果你将上传后的文件名保存在数据库中,或是在服务器的某个目录下判断上传的文件是否存在)。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧