2009-05-21 63 views
0

可能有人请建议对以下情况下最好的设计:设计方案

有一个文件多的数字,文件有点类似于:

-1100 
-1101 
-1102 
-1103 
-1104  
- 
- 
- 
- 
-To 9999 
  • 设计和开发JDBC中的程序将读取文件中的所有数字并插入数据库中的表中。

注意:我不想读取文件千次和防火插入语句千次。

+0

为什么不呢?它解决了这个问题,从文本文件读取1000次并不是很好(只要你保持文件打开),并且据我所知,你不能在数据库表中进行批量插入,除非你从另一个数据库表。 – Sekhat 2009-05-21 20:44:05

+0

我只是想与其他人一起检查他们是否有一些非常好的想法来设计/开发这种场景。如果您有任何问题,请留下您的建议。 – 2009-05-21 20:51:50

回答

1

算法:

  • 使用BufferedFileReader到逐行读取文件中的行。
  • 用你需要的插页做一个准备好的声明。
  • 对于每一行,将准备好的语句的参数与文件中的数据解析器绑定。
  • 使用executeBatch每x行左右做插入。

  • 利润!

1

您不能使用散装加载程序吗?下面是SQL Server的例子:

BULK 

INSERT BulkTest 

FROM ‘c:\file.txt’ 

WITH 

(

ROWTERMINATOR = ‘\n’ 

) 

GO

这里是另一种选择,至少在SQL Server 2008中,有1条语句插入多行:

Insert into table(id, country) 
Values 
(1,‘USA’), –-Row 1 
(2,‘UK’), –-Row 2 
(3,‘France’) –-Row 3