java项目,我上传dbf文件,解析文件数据保存到数据库里,数据量太大,速度太慢

java项目,我上传dbf文件,解析文件数据保存到数据库里,数据量太大,速度太慢,第1张

您好,
ResultSet得相关参数代码片断,下面的代码对类型判断和转换还不全面,如果还有其他字段请自行添加
Java代码
try {
ResultSetMetaData meta = rsgetMetaData();
int columnCount = metagetColumnCount();
strutName = new String[columnCount];
strutType = new byte[columnCount];
rslast();
int itemCount = rsgetRow();
rsfirst();
data = new Object[itemCount][columnCount];
for (int i = 1; i <= columnCount; i++){
int type = (byte) metagetColumnType(i);
//2是BigDecimal
if(type == 2){
strutType[i-1] = DBFFieldFIELD_TYPE_N;
}
//12是String
else if(type == 12){
strutType[i-1] = DBFFieldFIELD_TYPE_C;
}
//91是javautilDate
else if(type == 91){
strutType[i-1] = DBFFieldFIELD_TYPE_D;
}
strutName[i-1] = metagetColumnName(i);
}
for (int i = 0; rsnext(); i++){
for (int j = 0; j < columnCount; j++){
Object da = rsgetObject(j+1);
if(da instanceof BigDecimal){
Double d = DoubleparseDouble(datoString());
data[i][j] = d;
}else{
data[i][j] = da;
}
}
}
}catch (Exception e){
eprintStackTrace();
}finally{
rs = null;
}

上面采用的是传统方法进行导出dbf文件,如果大数据量导出时,就要先将文件生成到服务器端,然后从response里拿输入流,将刚生成的文件写到客户端,也就是多一个文件流写入的过程。

1、前言 随着计算机技术的发展,客户机/服务器(Client/Server)体系结构的数据库系统应用越来越广泛,而Foxbase、Foxpro是我国近阶段使用较广的数据库开发软件,很多数据都存在DBF表中,本文将介绍如何将DBF表中的数据转换到SQL Server表中。
2、用Visual Basic编程实现转换 用Visual Basic编程实现转换,即通过SQL Server提供的ODBC接口(开放数据库接口)及Visual Basic中应用数据访问,建立Visual Basic与SQL Server的连接,由Visual Basic向SQL Server提交创建表命令,然后将dbf的每条记录提交给SQL Server,完成数据转换。DBF的数据结构是(examp1dbf): 字段名类型字段长度字段内容
Id C 4货物编号
name C 20货物名称
实现步骤:
(1)在数据库服务器”sqlserver1”中建立数据库sqlexample,建立一个表”example1”,其结构与examp1dbf结构相同。其结构是: 字段名类型字段长度字段内容
Id C 4货物编号
name C 20货物名称
(2)、ODBC的设置:在客户机上进入Windows的控制面板( Control panel )。双击ODBC数据源(32位)图标,进行数据库的ODBC驱动设置。在用户DSN下,按“添加”,选择SQL Server,在名称输入”sql1”,服务器输入”sqlserver1”,用户名输入”sa”,口令输入”123456”,测试是否连通。
(3)、在Visual Basic建立一工程,添加“引用”Microsoft ActiveXData Objects21 Library和Microsoft DAO 351 object library。在Form1上建一个Command1,将Command1的Caption改为转换。程序清单如下:

Private Sub Command1_Click()
Dim db As Database
Dim tb As Recordset
‘打开C:examp1dbf
Set db=OpenDatabase(c:,False,False,”foxpro 25”)
Set tb=dbOpenRecordset(examp1)

Dim conn1 As ADODBConnection
Dim cmd1 As ADODBCommand

Set conn1=New ADODBConnection
Set cmd1=New ADODBCommand

cons1=”ODBC;DATABASE=sqlexample;UID=sa;PWD=123456;DSN=sql1”
conn1Open cons1
Set cmd1ActiveConnection=conn1
Do while not tbEOF
Cmds1=”insert into example1 values(‘“& tbFields(0) &”’,‘“& tbFields(1)
&”’)”
cmd1CommandText=cmds1
cmd1Execute
tbMoveNext
Loop

MsgBox“载入完毕”,,”提示”

Cnn1Close
Unload me
End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10761511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存