社区
Web 开发
帖子详情
struts环境下,从Jsp页面上导入excel文件,保存到数据库之中
liqiang208
2008-05-11 11:30:37
导入的量也不是很大,就是三千多条。
问题是每一条数据都会进行有效性检查(跟数据库里的数据匹配),如果其中一条数据有错,则全部rollback。
所以效率很低。
大家有没有好的解决办法?
谢了
...全文
840
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>
将
Excel
数据批量
导入
到
数据库
我们今天就给大家介绍一个用途非常广泛的功能:批量
导入
,在很多系统中,这也是必须实现的功能。而且当
Excel
表结构越复杂时,实现的难度就越高。 不管项目如何复杂,原理却基本相同,一般是前台页面选择
Excel
文件
,后台获取后进行数据转化,然后循环执行Sql语句即可,了解这些原理后,一切也就变得简单。 项目进行简化,只有批量
导入
功能,采用
Struts
2框架,将
Excel
数据
导入
到Mysql
数据库
中。 项...
用
struts
2来
导入
excel
文件
并显示到页面上
一、先把需要的包
导入
到工程里如下:
struts
jar commons-fileupload-1.2.1 commons-io-1.3.2 commons-logging-1.0.4 commons-logging-1.1 freemarker-2.3.13 ognl-2.6.11
struts
2-core-2.1.6 xwork-2.1.2 Poi jar: poi
基于
struts
2的
导入
excel
文件
到
数据库
操作
我们在做一些人员管理系统的时候,市场面临这样一个问题:信息量过大,一个一个的
导入
相当的费时、费力,直接选中要
导入
的人员信息的
excel
表显然是一个好方法。 addStudents.jsp 请选择要
导入
的
excel
文件
: StudentAction public String addStudents() throws Exception { // 获取re
文件
信息批量
导入
数据库
(
Struts
2实现
文件
上传,POI实现
Excel
文件
读取并写入
数据库
) .
如题:
文件
信息的批量
导入
...... 项目中经常会遇到客户的一些单表信息的数据批量
导入
,也就是提供定制
Excel
表,再把
Excel
表中的数据提取到
数据库
的操作,其实实现起来很简单。以下是小菜鸟我的实现思路: 1、
JSP页面
+
Struts
2实现
文件
上传,把定制
Excel
上传到服务器指定目录下,以供读取; 2、POI读取
Excel
表格,把数据封装为持久化实体List 3、批量
导入
数据库
Struts
2 数据
导入
导出
使用
Struts
2 结合POI 完成
Excel
文件
的数据
导入
导出 1.
导入
Excel
数据 在web 应用中需要将
excel
文件
中的数据
导入
到系统,
保存
到
数据库
中。其思路就 是把
excel
文件
(*.xls或者*.xls
Web 开发
81,111
社区成员
341,726
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章