请问有谁做过用JAVA把大数量文本文件导入数据库的,我现在是先读文本文件然后生成SQL语句,插入到数据库,这样很慢,有那位高手做过类似的,有没有优化的方法呀,谢谢了???

解决方案 »

  1.   

    不好意思,可能是我没描述清楚,文本文件里有好多条数据,我是根据这些数据生成SQL语句,然后插入到数据库当中去的
      

  2.   

    如果采用正常的间隔符(Tab符,逗号,等),可以直接使用数据库导入(不必写程序导入)
      

  3.   

    纠正: 如果采用正确的间隔符(Tab符,逗号,等),可以直接使用数据库导入(不必写程序导入)
      

  4.   

    是什么数据库?
    stu.txt 结构
    1,Jim
    2,Kate
    3,Tom
    ...BULK INSERT dbo.TABLE1
    FROM 'd:\stu.txt'
    WITH (
        FIELDTERMINATOR = ',',
        ROWTERMINATOR = '\n'
    )
    明白不?试试吧
    这样只执行一条SQL,而且只有数据库和文本文件交互,与直接使用数据库导入的效率是一样的,没有比这更快的方法了
      

  5.   

    先从文本读取到List,然后批量插入(batch)。
      

  6.   

    liaohaiying(小菜),谢谢你的回复!
    我用的是oracle数据库,而且文本文件的数据格式也不固定,需要在导入的时候设置数据导入格式后,再通过这个规则导入进数据库难道除了多线程,批量插入就没有其它方法了吗?
      

  7.   

    liaohaiying(小菜)你的方法是在什么数据库中可以使用呀!
      

  8.   

    我用的是oracle数据库文本文件的格式如下:#id~name
    001~pragmatic
    002~test第一行代表表头
    第二,三行是数据
      

  9.   

    可以尝试用Oracle的SQLLDR工具,把control文件写在JAVA中运行RUNTIME的话应该就可行。