Java 使用Load data into将CSV文件加载到mysql表。如何将以下查询转换为JOOQ?

Java 使用Load data into将CSV文件加载到mysql表。如何将以下查询转换为JOOQ?,java,mysql,csv,jooq,Java,Mysql,Csv,Jooq,testing.csv: 表测试表 问题1:请帮助我将其转换为JOOQ3.6 问题2:我想避免第1行的空数据。jOOQ有一个用于此目的的。下面是如何将MySQL命令转换为jOOQ: LOAD DATA INFILE '/testing.csv' IGNORE INTO TABLE Test_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 ROWS (@col1) SET test_ID="100", t

testing.csv:

表测试表

问题1:请帮助我将其转换为JOOQ3.6 问题2:我想避免第1行的空数据。

jOOQ有一个用于此目的的。下面是如何将MySQL命令转换为jOOQ:

LOAD DATA INFILE '/testing.csv'
IGNORE INTO TABLE Test_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
IGNORE 1 ROWS (@col1)
SET test_ID="100",
    test_reg_ID ="26003",
    VALUE =@col1;
请注意,jOOQ的Loader API不像MySQL那样支持这些默认表达式(请参阅):

有几个变通办法:

  • 您可以修补CSV数据,并在加载这些列之前预先添加它们
  • 您可以先使用,然后再使用
    stream()
  • 您可以在导入此数据后立即运行一个简单的
    UPDATE
    语句
  • 关于性能的说明
    请注意,jOOQ的加载程序API可以通过指定。尽管如此,数据库的开箱即用导入实现很可能仍然比任何必须通过JDBC的客户端导入快得多。

    您不应使用有问题的图像链接。你应该将代码作为文本发布。
    DSL.using(configuration)
       .loadInto(TEST_TABLE)
       .loadCSV(new File("/testing.csv"))
       .fields(TEST_TABLE.VALUE)
       .separator(',')
    // Available in jOOQ 3.10 only: https://github.com/jOOQ/jOOQ/issues/5737
    // .lineSeparator("\n")
       .ignoreRows(1)
       .execute();
    
    SET test_ID="100",
        test_reg_ID ="26003"