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

技術的には、「挿入」はマッパーにあるものは何でも行います.commit メソッドは SQL をデータベースにコミットします。それがなければ、実際には何も挿入されません。(たとえば、Eclipse では) すべてがうまくいったと言うかもしれませんが、 db、コミットされない限り何もありません。明確にするのに役立つことを願っています

于 2013-03-01T16:59:36.860 に答える