- 浏览: 197923 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
Kesin97:
不错 很有用。选择性锁也不太影响性能。
sqlserver的updlock锁 (转) -
fox-idea:
学习
用PC作数据库服务器的容灾问题 -
xwei78:
话说这个下载地址不太好找啊,我去oracle网站转了好一会才找 ...
oracle10g官方客户端配置
2005-08-05 来源:CSDN 作者:CMTobby |
最近参与了一个网上直报项目的维护工作,该网上直报应用程序有一个功能就是通过导入文本文档的方式向后台数据库中批量导入直报用户,包括用户各项信息如单位名称、企业资质等级等等。其核心之处就是如何获取所上载文本文档中的内容,现将该部分程序简单介绍如下:
首先是后台的javabean程序如下所示: |
package
Util;
import javax.servlet. * ;
import javax.servlet.http.HttpServletRequest;
import java.util.LinkedList;
import java.io. * ;
public class ReadRequest{
public LinkedList getRequest(HttpServletRequest request){
LinkedList output = new LinkedList();
try {
ServletInputStream in = request.getInputStream();
int len = request.getContentLength();
System.out.println (len);
byte []b = new byte [len];
in.read(b, 0 ,len);
String str = new String(b);
System.out.println (str);
BufferedReader con = new BufferedReader( new StringReader(str));
String c = "" ;
while ((c = con.readLine()) != null ){
output.add(c);
}
}
catch (Exception e){e.printStackTrace();}
return output;
}
}
然后是写相应的jsp测试页面,此页面没有经过美工处理,仅为测试之用:)。
import javax.servlet. * ;
import javax.servlet.http.HttpServletRequest;
import java.util.LinkedList;
import java.io. * ;
public class ReadRequest{
public LinkedList getRequest(HttpServletRequest request){
LinkedList output = new LinkedList();
try {
ServletInputStream in = request.getInputStream();
int len = request.getContentLength();
System.out.println (len);
byte []b = new byte [len];
in.read(b, 0 ,len);
String str = new String(b);
System.out.println (str);
BufferedReader con = new BufferedReader( new StringReader(str));
String c = "" ;
while ((c = con.readLine()) != null ){
output.add(c);
}
}
catch (Exception e){e.printStackTrace();}
return output;
}
}
index.jsp
<%
@ page contentType
=
"
text/html; charset=gb2312
"
language
=
"
java
"
import
=
"
java.sql.*
"
errorPage
=
""
%>
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " " http://www.w3.org/TR/html4/loose.dtd " >
< jsp:useBean id = " pn " scope = " page " class = " Util.ReadRequest " />
<%--< jsp:useBean id = " pn " scope = " request " class = " Util.GetFile " />--%>
<% @ page import = " java.util.* " %>
< html >
< head >
< meta http - equiv = " Content-Type " content = " text/html; charset=gb2312 " >
< title > 测试 </ title >
</ head >
< body >
< form name = " form1 " action = " index.jsp " method = " post " enctype = " multipart/form-data " >
< input name = " sdf " type = " file " >< input name = " aa " type = " submit " value = " 提交 " >
<%
LinkedList output = new LinkedList();
output = pn.getRequest(request);
// output=pn.readHttpData(request);
System.out.println(output.size());
for ( int i = 0 ;i < output.size();i ++ ){
out.println(output.get(i) + " <br> " );
}
%>
</ form >
</ body >
</ html >
这样就会输出文档中的内容来了,当然还有一些其他的内容,可根据实际需要对内容进行处理。需要注意的是,在该网上直报程序中,文档的格式是有要求的,每行为一个公司的基本信息,各个属性之间用“,”隔开(也可以是其他的符号如“@”),并且各个属性出现的顺序也是固定的(如必须第一项是法人代码,第二项是公司名称)。得到了文档中的内容后,就可以用一个循环批量的插入用户信息了。比如说,我上载的文本文档内容如下所示:
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " " http://www.w3.org/TR/html4/loose.dtd " >
< jsp:useBean id = " pn " scope = " page " class = " Util.ReadRequest " />
<%--< jsp:useBean id = " pn " scope = " request " class = " Util.GetFile " />--%>
<% @ page import = " java.util.* " %>
< html >
< head >
< meta http - equiv = " Content-Type " content = " text/html; charset=gb2312 " >
< title > 测试 </ title >
</ head >
< body >
< form name = " form1 " action = " index.jsp " method = " post " enctype = " multipart/form-data " >
< input name = " sdf " type = " file " >< input name = " aa " type = " submit " value = " 提交 " >
<%
LinkedList output = new LinkedList();
output = pn.getRequest(request);
// output=pn.readHttpData(request);
System.out.println(output.size());
for ( int i = 0 ;i < output.size();i ++ ){
out.println(output.get(i) + " <br> " );
}
%>
</ form >
</ body >
</ html >
300000000,武汉,420101,230,A304,A211,4700
300000001,武汉,420101,230,A304,A211,4700
300000002,武汉,420101,230,A304,A211,4700
300000003,武汉,420101,230,A304,A211,4700
首先对output进行处理,把前面的http头内容如:Content-Disposition: form-data; name="sdf"; filename="C:\Documents and Settings\yy\桌面\test_jz.txt"以及尾remove掉,现在的output就只有文档中的内容了。然后就开始插入数据库(只给出代码片断):
//以下代码仅适合本人的例子,具体情况具体而定
for
(
int
i
=
0
;i
<
output.size();i
++
){
if (output.get(i) == null || ( (String) output.get(i)).equals( "" )) {
continue ; // 空行则自动换行 }
String s = (String) output.get(i); // 取得一行 String[] ss = s.split(",");
String sql = " insert into xt_user(f001,f002,f003,f004,f005,f006) values(?,?,?,?,?,?) " ;
PreparedStatement ps = con.prepareStatement(sql);
ps.setString( 1 ,ss[ 0 ]);
ps.setString( 2 ,ss[ 1 ]);
ps.setString( 3 ,ss[ 2 ]);
ps.setString( 4 ,ss[ 3 ]);
ps.setString( 5 ,ss[ 4 ]);
ps.setString( 6 ,ss[ 5 ]);
ps.executeUpdate();
}
if (output.get(i) == null || ( (String) output.get(i)).equals( "" )) {
continue ; // 空行则自动换行 }
String s = (String) output.get(i); // 取得一行 String[] ss = s.split(",");
String sql = " insert into xt_user(f001,f002,f003,f004,f005,f006) values(?,?,?,?,?,?) " ;
PreparedStatement ps = con.prepareStatement(sql);
ps.setString( 1 ,ss[ 0 ]);
ps.setString( 2 ,ss[ 1 ]);
ps.setString( 3 ,ss[ 2 ]);
ps.setString( 4 ,ss[ 3 ]);
ps.setString( 5 ,ss[ 4 ]);
ps.setString( 6 ,ss[ 5 ]);
ps.executeUpdate();
}
发表评论
-
Glassfish性能调优 转
2013-02-02 00:30 765GlassFish是目前主流的Java EE应用服务器之一, ... -
ant设置代理
2012-08-24 12:36 823在built.xml文件里添加如下配置 <tar ... -
java(Web)中相对路径,绝对路径问题总结 转
2012-08-03 16:10 1028前言: 前一段时间, ... -
JMS开发
2012-07-05 08:24 732在编写JMS客户端程序之 ... -
Nginx+Tomcat+Memcached集群Session共享 转
2012-03-05 18:45 1365环境: windows 7 + nginx-1.1. ... -
jsp中的session机制
2012-01-12 16:32 836摘要:虽然session机制在 ... -
Clustering经典范文学习
2011-11-27 15:27 637构造Cluster是架构师们实现Scalability与H ... -
类实例化
2011-07-08 08:40 624学习JAVA这门面向对象的语言,实质就是不断地创建类,并把类实 ... -
http客户端 转
2011-05-10 10:50 696import java.net.*; impo ... -
android sqlite使用--转ibm
2011-02-28 14:50 858SQLite 介绍 SQLite 一个非常流行的嵌入式数据库 ... -
java计算阶乘
2010-12-31 18:12 1504第一个用java计算阶乘的方法:这是利用简单的循环相乘制造的阶 ... -
使用Java NIO编写高性能的服务器 转
2010-10-20 10:48 627从JDK 1.4开始,Java的标准库中就包含了NIO,即所谓 ... -
java nio 转
2010-10-20 10:47 567首先了解下所谓的java ni ... -
java io 流 转
2010-10-20 09:09 777一、流的概念 流(stream)的概念源于 ... -
java.util.concurrent 多线程框架实例 转
2010-10-19 21:32 561JDK5中的一个亮点就是将Doug Lea的并发库引入到Jav ... -
我的项目的结构和配置文件
2006-06-27 17:33 691学习java有段时间了,最近自己根据网上的资料 ... -
ibatis 使用动态表
2006-06-29 23:50 886自从ibatis 2.0.9以后,ibatis支持动态表 ... -
JAVA-学习-网络资源
2006-07-05 00:00 721SUN中国技术社区 ... -
Swing的Jtable类(转载)
2006-07-05 13:25 8521 t ... -
Java的文件与磁盘操作(转载)
2006-07-06 00:05 8921 如何获得某一个目录下的文件列表? 1 ...
相关推荐
该小程序主要适用于大量excel导入ORACLE数据库时,批量将excel转换为TXT文本文档并同时完成数据清洗,特定分隔符转换,以及数据质量检查。适用于大数据分析者。内含使用说明文档。
VB实现文本文件批量导入及数据库管理
Word文档文档批量导入“开始”菜单“文档”项; 文档批量改名功能,支持多种更名方式:插入字符、删除字符、替代其中字符、后缀名大小写转换、主名大小写转换; Word文档批量设置页眉页脚功能,批量为文档设置页眉...
Word文档批量导入“开始”菜单“文档”项; Word文档批量改名功能:支持多种更名方式:插入字符、删除字符、替代其中字符、后缀名大小写转换、主名大小写转换; Word文档批量设置页眉页脚功能:批量为Word文档设置...
2.导入txt到已打开的图层建立字段并删除其他无用字段 将一个或者多个需要修改的图层用arcmap打开(注意:要选择内容列表-按绘制顺序列出显示图层),点击此功能,选择功能一生成的txt文件,会自动按照txt文件中的...
文档批量导入“开始”菜单“文档”项; 批量繁简字转换:可将批量文档由繁体字转为简体字或简体字转为繁体字内容; 批量设置文档密码:可以为WORD文档批量设置访问密码、修改密码; 批量插入文档功能:将一个文档...
商品批量导入csv样例,请解压后使用 注意事项: 1、导入的csv是按照以下顺序编排,共29列 #商品编号,商品名称,商品品牌,商品库存,市场价,价格1,价格2,价格3,价格4,价格5,价格6,计价单位,商品积分,商品重量,是否...
软件介绍: 在打开Batchdoc时,如果出现ComDlg32.OCX丢失问题,请安装一下微软运行库合集就能解决此问题。Batchdoc用于批量处理WORD文档,能够对WORD文档进行合并...摘要批量导入开始菜单文档清空开始菜单文档文件夹
Excel文档批量导入“开始”菜单“文档”项。 Excel文档合并:能将一批Excel文件中的工作表合并到一个文件中。 Excel文档批量设置文档保护:若要防止他人偶然或恶意更改、移动或删除重要数据,可以批量保护特定工作...
文档批量导入“开始”菜单“文档”项; 文档批量改名功能,支持多种更名方式:插入字符、删除字符、替代其中字符、后缀名大小写转换、主名大小写转换; “字符串批量替换”功能,您可以方便的一次将多个文档中的某一...
圈外博客百度文库批量刷文档评价工具是圈外博客开发的免费网络推广软件,可批量刷百度文库文档评价和印象一级星级分数,可间接提高文档权威度和在百度搜索排名。软件使用小巧灵活,操作简单,是从事网络推广的必备...
Excel文档批量导入“开始”菜单“文档”项。 Excel文档合并:能将一批Excel文件中的工作表合并到一个文件中。 Excel文档批量设置文档保护:若要防止他人偶然或恶意更改、移动或删除重要数据,可以批量保护特定...
从Excel(XML)文件读取数据,批量制作标签工卡等的Photoshop脚本,完整代码,有说明文档,解压直接可用,适用于打印店、企事业单位、网店等需要制作大量工卡、仪器标签、商品标签的朋友,脚本有详细注释,可以根据...
最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...
新增公共对话框方式打开文档,可通过文档列表框和公共对话框两种方式打开文档,使文档开启更加灵活,方便快速阅读简繁文本文件及浏览图像文件;它具有导入网站源文件的功能并作转换处理。它具有较高的智能处理功能,...
ADBulkAdmin工具主要用于批量管理AD帐户,可用于批量查看用户常用属性,批量新建用户和设置用户属性等,可以连接指定的域控,可将所有操作日志保存到Access数据库中。 软件运行要求: 1. 需要安装.NetFramework 4.0...
今天小编就为大家分享一篇使用python批量读取word文档并整理关键信息到excel表格的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
ES在之前的博客已有介绍,提供很多接口,本文介绍如何使用python批量导入。ES官网上有较多说明文档,仔细研究并结合搜索引擎应该不难使用。 先给代码 #coding=utf-8 from datetime import datetime from elastic...
批量导入登录,单击导入 弹出通用对话框,选择文本文档或其他文件打开 就能批量登录导入格式: 帐号 密码(帐号密码分隔符可自定义)注:每行一个用户登录成功后的用户单击左边的在线状态图标 即可更换状态,如在线时单击...
本工具软件支持Word,txt,xls,ppt,asp,htm等6种类型的文档,对该类文档内容中的字符进行批量替换操作,支持一次性查找替换多对查找替换对,支持导入导出查找替换对列表。支持查找替换电子表格中文本框中的数据。支持...