您好,我想通过 JDBC 在多个数据库(如 DB2、Sybase、MySQL 等)上创建表。现在我需要使用包含数据空间分隔值的文本文件 data.txt 创建此表。例如
CustName OrderNo PhoneNo
XYZ 230 123456789
ABC 450 879641238
现在这个 data.txt 包含数千条以空格分隔的记录值。我需要使用 java io 逐行解析这个文件并为每条记录执行 sql 插入查询。
我发现有 LOAD DATA INFILE sql 命令。是否有任何 JDBC 驱动程序支持此命令?如果不是,什么应该是解决此问题的最有效的快速方法。
请指导。提前致谢。
最佳答案
以下将通过 JDBC 工作。请注意,要使用 LOAD DATA INFILE
,您需要 super 用户权限。您不需要 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);
如果您使用LOAD DATA INFILE
,文件位置基于服务器的文件系统!如果您使用本地文件,那么显然它是基于客户端的文件系统。
关于java - 是否有任何 JDBC 驱动程序支持 LOAD DATA INFILE sql 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17313921/