【问题标题】:what does insert and commit do in Mybatis?Mybatis中insert和commit是做什么的?
【发布时间】:2013-01-04 14:39:21
【问题描述】:

我对insert操作和commit操作的开销做了测试。代码sn-ps如下:

long t2 = System.currentTimeMillis();
session.insert("mybatis_test.BlogMapper.insert", new BlogMapper(4, "shuaige"));

long t3 = System.currentTimeMillis();
session.insert("mybatis_test.BlogMapper.insert", new BlogMapper(6, "shuaigege"));
long t4 = System.currentTimeMillis();
session.insert("mybatis_test.BlogMapper.insert", new BlogMapper(7, "shuaigegege"));
long t5 = System.currentTimeMillis();
session.commit();
long t6 = System.currentTimeMillis();

System.out sn-ps 如下:

System.out.println(t3-t2);
System.out.println(t4-t3);
System.out.println(t5-t4);
System.out.println(t6-t5);

输出是:

869

1

1

205

正如我们在这里所看到的,第一个“插入”操作和提交操作占用了大部分开销。但是第一个插入做了什么会占用大量开销?

【问题讨论】:

  • 什么是 DBMS?你能用普通的 JDBC 试试这个吗?

标签: insert mybatis overhead


【解决方案1】:

第一个插入打开断开连接。然后在会话期间重复使用。

【讨论】:

    【解决方案2】:

    从技术上讲,“插入”将执行映射器中的任何操作.. commit 方法会将 sql 提交到数据库,没有它实际上不会插入任何内容,它可能会说(例如在 eclipse 中)一切都很顺利,但是在 db 上,除非它被提交,否则不会有任何东西。希望有助于澄清

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-14
      • 2011-08-19
      • 1970-01-01
      • 2014-01-10
      • 2014-06-11
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多