我需要在Java中生成一个表(矩阵),最终目的是将其导出到SQL数据库。我正在使用Object [] [],因为表列包含不同的数据类型。但是,在表生成过程中,我需要不断执行“查找并更新前两个元素为x和y的行”这一形式的操作,我对使用双循环这样做很犹豫,因为这需要花费很多时间(表格会很长)。你有什么建议吗?通过JDBC直接在SQL中执行更新,而不是在Java中完成所有工作并在之后导出它会更有效吗?
答案 0 :(得分:0)
通常,在内存中执行操作比在数据库上执行操作要快得多。 请记住,每次需要更新行时,数据库都必须创建一个事务。 这意味着创建一个锁,更新,释放锁,这真的很慢。
如果要做很多处理,内存几乎每次都要快得多。 但请注意,因为它也可能在内存中放置太多对象并导致内存不足错误。
现在,看起来您可以使用更好的数据结构来进行微积分,然后您可以序列化到要插入的行。
例如,由于您要查找前两个元素为x和y的行,您可以将元素存储在Map<String,List<String>>
中,其中键为x_y,列表将是您想要的行在处理结束时插入。
然后,您可以非常轻松地访问您的元素,而不是每次都迭代您的行。
完成整个一代之后,您只需要迭代Map以将其插入数据库。