我有一个大约有 200 列的表。我想知道使用 Jooq 将此数据插入 MySQL 的最佳方法。
现在,我在程序中使用 POJO 来处理/转换我的数据。我的问题是,据我了解,如果我想创建一个 POJO,我必须调用 .set{column name}。我没有可以在 POJO 上调用的通用 .set 方法,例如:.set(column, value)。
在有人说之前,我很乐意为 200 列做这么长的事情,但我还有大约十个类似大小的表,我也需要这样做,所以这将很难维护。
所以我的问题有两个:
我对 POJO api 的理解正确吗?我查看了配置,但没有看到任何可以帮助我的内容。
在 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/