0

我对插入操作以及提交操作的开销进行了测试。代码片段如下:

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 片段如下:

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

输出是:

869

1

1

205

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

4

2 回答 2

0

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

于 2013-01-22T18:49:39.467 回答
0

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

于 2013-03-01T16:59:36.860 回答