社区
Web 开发
帖子详情
struts环境下,从Jsp页面上导入excel文件,保存到数据库之中
liqiang208
2008-05-11 11:30:37
导入的量也不是很大,就是三千多条。
问题是每一条数据都会进行有效性检查(跟数据库里的数据匹配),如果其中一条数据有错,则全部rollback。
所以效率很低。
大家有没有好的解决办法?
谢了
...全文
803
12
打赏
收藏
struts环境下,从Jsp页面上导入excel文件,保存到数据库之中
导入的量也不是很大,就是三千多条。 问题是每一条数据都会进行有效性检查(跟数据库里的数据匹配),如果其中一条数据有错,则全部rollback。 所以效率很低。 大家有没有好的解决办法? 谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yanzhiyong1234
2010-12-31
打赏
举报
回复
最好是把数据库中的数据建成索引文件,然后用EXCEL中的数据到索引文件里去匹配,这样效率会好些。
liqiang208
2008-05-26
打赏
举报
回复
顶
看来第一个办法比较合适一些
shuai45
2008-05-26
打赏
举报
回复
导入excel目前都有现成的,先下载poi的包,网上有很多方法.
yaray
2008-05-12
打赏
举报
回复
1. 将客户端Excel文件上传到服务器,临时保存下来;
2. 查询数据库(以满足数据有效性检查,数据封装后待用),关闭该数据库连接(节约数据库连接资源:及时释放连接)
3. 分析Excel文件,并使用查询获得的封装数据进行有效性检查:
存在非法数据则删除临时文件,返回并提示数据非法
4. 全部数据合法时,获得数据库连接并将数据批量保存到数据,最后提交;中间有异常则回滚;
5. 最后删除临时文件
我是一个测试鸡
2008-05-12
打赏
举报
回复
路过,关注中
老紫竹
2008-05-12
打赏
举报
回复
问题是每一条数据都会进行有效性检查(跟数据库里的数据匹配),如果其中一条数据有错,则全部rollback。
解决方法有2个
1 把要匹配的数据提前读取到内存,用Map保存,匹配时就不必每次都读取数据库了
2 把所有数据全部放到数据库,在数据库里面用SQL语句进行校订,这个不难吧。 left join 的时候,会出现不匹配的为null的就是非法的数据
panxuan
2008-05-12
打赏
举报
回复
[Quote=引用 1 楼 gerenmajia 的回复:]
// 获取excel 文件
Form fm = (Form) actionForm;
FormFile formfile = fm.getUploadfile();
InputStream inputstream = formfile.getInputStream();
fm.clear();// 清空
InputStream is = new FileInputStream(fileName);
if (is != null && is.available() != 0) {
Workbook workBook = Workbook.getWorkbook(is);
Sheet[] sheetS = workBook.getSheets();
if (sheetS != null && sheetS.lengt…
[/Quote]
limon758
2008-05-12
打赏
举报
回复
每次把正确的记录保存到容器里
等出现错误rollback后,先去搜索容器,把容易的对的取出,再按照容器条数的下条开始继续取值
chenhongxin
2008-05-12
打赏
举报
回复
excel文件以附件形式上传到服务器
通过odbc(当时是win32环境),连接并读取数据从excel文件
通过上面得到的结果集,与数据库交互,执行校验
校验通过,结果集保存到数据库中
liqiang208
2008-05-11
打赏
举报
回复
请问在内存中操作可以吗?
省略去“上传”的步骤
椅子
2008-05-11
打赏
举报
回复
相同的功能,我是这么处理的:
excel文件以附件形式上传到服务器
通过odbc(当时是win32环境),连接并读取数据从excel文件
通过上面得到的结果集,与数据库交互,执行校验
校验通过,结果集保存到数据库中
gerenmajia
2008-05-11
打赏
举报
回复
// 获取excel 文件
Form fm = (Form) actionForm;
FormFile formfile = fm.getUploadfile();
InputStream inputstream = formfile.getInputStream();
fm.clear();// 清空
InputStream is = new FileInputStream(fileName);
if (is != null && is.available() != 0) {
Workbook workBook = Workbook.getWorkbook(is);
Sheet[] sheetS = workBook.getSheets();
if (sheetS != null && sheetS.length != 0) {
int sheetLen = sheetS.length;
for (int i = 0; i < sheetLen; i++) {
// 当前sheet的行数
int rowLens = sheetS[i].getRows();
// 当前sheet的最大列数
int colLens = sheetS[i].getColumns();
int beginRow = skipRowNumber;
int beginCol = skipColNumber;
String cellValue = null;
String[] rowArray = null;
if (rowLens - beginRow > 0 && colLens - beginCol > 0) {
for (int row = beginRow; row < rowLens; row++) {
rowArray = new String[colLens - beginCol];
for (int col = beginCol; col < colLens; col++) {
Cell cell = sheetS[i].getCell(col, row);
if (cell != null) {
cellValue = cell.getContents();
}
rowArray[col] = cellValue;
}
}
recorderList.add(rowArray);
}
}
}
}
workBook.close();
}
is.close();
<html>
<html:form action="/Action.do?method=getUpload" method="POST" enctype="multipart/form-data">
<html:file property="uploadfile" size="80%" />
<input type="button" value="导 入" onclick="upload(this.form)" class="buttonGray">
</html:form>
</html>
移动商务短信平台
本系统采用WEB方式的B/S系统架构,支持局域网和互联网访问;由当前流行的jsp+
struts
2+hibernate+spring+ajax等最新技术实现。 主要功能: 1.能进行短信的群发,接收; 2.支持通过
Excel
文件
、文本
文件
批量
导入
导出发送数据; 3.内置4000万条用户数据,用户可通过条件筛选合适的号码进行发送,也可以批量
导入
号码发送; 4.支持多用户使用,自动充值,充多少发多少;方便发展代理商 5.可以查看发送明细;导出数据; 6.与中国移动的动力100无缝结合;可以直接把数据
导入
到动力100系统发送; 7.有很高的安全性,对系统中的任何操作均有日志记录; 8.支持SQL2000、SQL2005等
数据库
。
基于SSH2图书管理系统升级版(源码+运行截图+演示视频).zip
基于SSH2图书管理系统升级版(源码+运行截图+演示视频).zip 一、内容概要:程序测试软件: MyEclipse8.5
数据库
: mysql 采用技术: SSH2(
Struts
2 + Spring + Hibernate),标准SSH2框架,采用了基于注解方式管理bean和事务,使用poi进行
excel
批量导出 图书类型:图书类别,类别名称,可借阅天数 图书:图书条形码,图书名称,图书所在类别,图书价格,库存,出版日期,出版社,图书简介,图书图片 读者类型:读者类型编号,读者类型,可借阅数目 读者:读者编号,读者类型,姓名,性别,读者生日,联系电话,联系Email, 二、适合人群:具备一定编程基础,准备毕业设计的同学 能学到什么:①如何实现旅游景点酒店预订网站系统,从
数据库
设计到系统实现全流程; ②如何去编写一个与之类似的毕业设计系统。 阅读建议: 1. 首先阅读需求了解系统的主要功能,涉及到的相关技术,以及设计的相关数据表 2 执行php_db.sql语句创建
数据库
3
导入
项目,运行项目,这是一个前后端不分离的项目,前端采用JSP,将项目放在Tomcat容器中即可运行
java项目之hrm人事管理项目(java毕业设计)
项目中使用的技术: 1、前端:jsp、css、javascript、jQuery(js框架)、jquery.form.js、HTML富文本编辑器、 My97时间控件(添加员工) 2、后台:
Struts
2、动态代理、Mybatis框架、log4J日志框架、jstl 、jstl自定义分页标签、代码机器人、Dwr、POI(实现
Excel
文件
的
导入
导出)等 3、
数据库
:Mysql 4、服务器:Tomcat 项目中涉及的功能: 1、项目以及
数据库
搭建 2、用户异步登录、退出 3、拦截器功能实现以及整合动态代理 4、公告模块的增加、修改、删除、查询以及预览功能实现、
文件
异步上传 5、文档模块的增加、修改、删除、查询以及文档的上传下载 6、员工信息的增加、修改、删除、查询以及员工头像异步上传、员工信息导出至
Excel
文件
7、自定义分页标签实现(24种样式随意切换) 8、代码机器人使用等等 其他实战项目:java项目实战之电商系统全套(前台和后台)(java毕业设计ssm框架项目)https://edu.csdn.net/course/detail/25771 java项目之o
Java中上传
excel
文件
并在服务器端读取存入
数据库
传
excel
文件
并在服务器端读取存入
数据库
博客分类:
struts
2
Excel
JSPXML工作 Java代码 页面jsp
文件
"add" action="/gxtWeb/lvjcontacts/manyContacts.action" method="post" enctype="multipart/form-data" onsubm
JXL将
excel
的数据
导入
到
数据库
excel
数据如下:
数据库
的表格如下: 读取
Excel
的数据,插入到
数据库
中,访问的方法是insert: public class Test
Excel
extends BaseAction implements ModelDriven{ private Equipment equipment; public String insert(){ try{
Web 开发
81,092
社区成员
341,718
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章