【发布时间】:2023-03-15 19:25:02
【问题描述】:
我有一个学校项目,需要我做一些 Java 客户端,这些客户端连接到不同的 SQL 数据库和一个 NoSQL (MongoDB)。
对于 SQL DB,我使用 JPA 来简化自己的工作。
这就是我使用 JPA 插入数据库的方式。
EntityManager entityManager= ENTITY_MANAGER_FACTORY.createEntityManager();
EntityTransaction et = entityManager.getTransaction();
et.begin();
int index_flush = 1;
for(Iterator<Book> it = bookList.iterator(); it.hasNext();) {
book = it.next();
entityManager.persist(book);
if((flush_index % 20) == 0) {
entityManager.flush();
entityManager.clear();
}
flush_index++;
}
et.commit();
我的问题是:我在哪里测量执行时间?
我所知道的是entityManager.persist 和entityManager.flush 实际上并没有与数据库通信。只有在调用实体事务提交时才能看到 DB 上的更改。
我只需要测量完成该提交所需的时间吗?
提前致谢!如果我的解释不清楚,请告诉我。
【问题讨论】: