是否有任何JDBC驱动程序支持LOAD DATA INFILE sql命令?

Ume*_*cha 4 java mysql database jdbc

您好我想通过JDBC在DB2,Sybase,MySQL等多个数据库上创建表.现在我需要使用文本文件创建此表,例如data.txt,其中包含数据空间分隔值.例如

CustName OrderNo PhoneNo

XYZ      230     123456789
ABC      450     879641238    
Run Code Online (Sandbox Code Playgroud)

现在这个data.txt包含数千个记录空间分隔值.我需要使用java io逐行解析这个文件,并为每个记录执行sql insert查询.

我发现有LOAD DATA INFILE sql命令.是否有任何JDBC驱动程序支持此命令?如果不是什么应该是解决这个问题的最有效的快速方法.

请指导.提前致谢.

a_h*_*ame 7

以下内容将通过JDBC完成.请注意,要使用LOAD DATA INFILE您需要超级用户权限.你不需要的LOAD DATA LOCAL INFILE

Connection con = DriverManager.getConnection("jdbc:mysql://localhost/foobar", "root", "password");
Statement stmt = con.createStatement();
String sql = 
    "load data infile 'c:/temp/some_data.txt' \n" +
    "   replace \n" +
    "   into table prd \n" +
    "   columns terminated by '\\t' \n" +
    "   ignore 1 lines";
stmt.execute(sql);
Run Code Online (Sandbox Code Playgroud)

如果使用LOAD DATA INFILE文件位置是基于服务器的文件系统!如果您使用本地文件,那么显然它基于客户端的文件系统.