java - 将数据插入具有大量列的表中

标签 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);
    

但我不知道这是否是正确的方法(以及这是否会给我带来悲伤)。

最佳答案

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

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

关于java - 将数据插入具有大量列的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47680700/

相关文章:

java - 流异常 : An invalid XML character (Unicode: 0x1a)

php - 选择 ID 存在于另一列 MySQL 中的项目

php - 如何使用 DATE_FORMAT() 对表格日期进行排序?

php - 如何查询具有单引号的数据数组?

java - 无法让我的程序等待,导致我的白屏! java

java - 将 Swing 组件绑定(bind)到 Java 对象

php - 如何从mysql记录中返回php代码?

SQL:在每个类别中查找评分最高的文章

mysql - sql week 关键字不包括年初的日子

java - 如何允许 ArrayList 删除添加的对象而不覆盖或使其不可变