将数据插入包含大量列的表中

时间:2017-12-06 18:02:12

标签: java mysql sql jooq

我有一张约200个左右的表。我想知道使用Jooq将这些数据插入MySQL的最佳方法。

现在,我在我的程序中使用POJO来处理/转换我的数据。我的问题是,据我所知,如果我想创建一个POJO,我必须调用.set {column name}。我没有可以在我的POJO上调用的通用.set方法,例如:.set(column,value)。

在任何人说出来之前,我会很乐意为200列做很长的路,但是我还有大约十个相似大小的表,我也需要这样做,所以这很难维护。

所以我的问题是双重的:

  1. 我对POJO api的理解是否正确?我查看了配置,但我看不到任何可能对我有帮助的内容。

  2. 在POJO之外最简单的方法是什么?我最好的想法是使用记录

    Record test = conn.newRecord(table);
    Field<Object> field1 = field(name(table,col));
    test.set(field1, 10);
    
  3. 但我不知道这是否是正确的做法(如果这会让我感到悲伤)。

1 个答案:

答案 0 :(得分:0)

如果用“POJO”表示jOOQ生成的POJO,那么确实没有set(column, value)方法,因为这不是你对经典POJO(或JavaBean)的期望。然而,jOOQ的记录(正如你所注意到的)确实有这些方法。记录还支持一次设置多个值,例如来自Map或来自数组。有关详细信息,请参阅Record.from(Object)方法。

换句话说,您对记录的使用对于jOOQ来说是惯用的。我不知道这会如何导致“悲伤”。