现在接手一个java项目 批量导入模块,需提供jsp页面上excel导入功能 求设计

现在接手一个批量导入模块,需提供jsp页面上excel导入excel中数据需做有效性校验(数据格式),重复校验,重复个数校验等四五种校验,校验时的关联查询表有两个,视图一... 现在接手一个批量导入模块,需提供jsp页面上excel导入
excel中数据需做有效性校验(数据格式),重复校验,重复个数校验等四五种校验,校验时的关联查询表有两个,视图一个,数据量都为亿级,
向数据库插入数据时部分字段为excel中数据,部分为页面传至后台数据,导入完毕后返回页面需显示导入数据条数,成功条数,失败条数,并给出失败记录下载链接,供用户导出
已确定excel中数据量为10万以下,
我现在的做法是在java代码中逐条校验,然后将校验成功的数据根据校验结果插入数据库中不同的表,校验失败的数据及失败原因等插入失败记录表,
现在我导入6000条数据时就需要4分钟左右,严重影响效率

现在我的思路有两个:
一个是读excel后后台起多线程来校验数据格式并批量插入excel中数据至临时表,完毕后再来做联合查询查出无效数据条数,并再起多个线程来分别将有效的数据导入对应的表,无效的数据导入失败记录表

第二种是在后台将excel文件转为csv格式并生成sqlloader控制文件,然后调用Sqlldr 命令将数据全导入临时表,然后再起多线程来做数据的校验工作及导入工作

系统平台为linux 服务器为jboss
页面等待时间必须控制在一分钟以内,最好在20秒内能完成,不知哪种方法更有可行性,或者有牛人能提出更好的方案就万分感谢了

第二种方法我只是在网上看到这方面的资料,从没用过,不知可行性如何
展开
 我来答
百度网友845f74e61
2012-06-13 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1626万
展开全部
先说时间吧。

一分钟以内,最好在20秒内能完成
这个是指多少条记录?亿?还是6000?
假设是六千的话,那么一秒钟就要处理100条。
第一种方法,我觉得你起了多线程效果也不会差太多。线程也是要耗内存的。线程多了一样慢。

你所说的 6000条数据时就需要4分钟左右 这个包不包括上传文件的时间?

你将工程分成几个步骤可不可以?
1.上传文件(数据是不是要添加到临时表中,你来决定),完成后显示一个页,就是你要传给后面的另一部分数据。
2.确认这部分数据后,提交,进行数据的处理。

这样分开的好处就是每一步的时间都会短一些,不把时间集中在一起。
还有就是你可以在文件上传完以后,在后台起线程来处理数据,用户看第二个页的时候,你已经在处理数据了,这样也可以减少一部分时间。

至于你说的第二个方法,我虽然没有做过,但知道可行。
不过,时间应该也短不了,因为你又要读EXCEL,又要写文件,这都是比较耗时的。
柏冠e
2012-06-13 · TA获得超过1425个赞
知道小有建树答主
回答量:840
采纳率:41%
帮助的人:236万
展开全部
我以前做MSSQL的时候是把excel直接导入数据库的再处理的,用程序写太麻烦,你是用Oracle?不知道有没有这功能.用程序处理excel其实和处理文本差不多,效率肯定不行的.何况还要校验.

导出倒不难,把数据做成HTML的table格式,扩展名改成xls就可以用excel打开了.
追问
直接导入数据库是不可能了  因为这个是项目需求  客户需要这样一导入功能   项目上线后这部分的操作人员不直接操作数据库
我考虑的是仅仅开多线程未必能很有效的把效率提起来
追答
那你就跟客户说明好了.就说数据多了导入肯定会慢.而且要实现恐怕得在服务器端做一个组件或程序来完成,用网页搞不好响应会出问题.要实现是比较麻烦一些.

以前做项目的时候也想过把excel直接导进数据库的,不过处理起来比较麻烦,客户也没这要求,最后都上传做附件了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hasonhanyu
2012-06-30
知道答主
回答量:31
采纳率:0%
帮助的人:11万
展开全部
怎么做的,兄弟分享一下,我也正在做这个功能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bf41932
2012-07-23
知道答主
回答量:7
采纳率:0%
帮助的人:6283
展开全部
你怎么做的啊?能不能给我邮箱(392323642@qq.com)发个简单的例子?,让小弟学学!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_擱淺幸福_
2012-08-01
知道答主
回答量:3
采纳率:0%
帮助的人:4813
展开全部
我现在做的也是这样的功能,但是还无从入手,可以把你的整个流程页面,给我发一下吗?谢谢啦~我邮箱541112875@qq.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式