Insert 插入和提交在Mybatis中做什么?
我对插入操作和提交操作的开销进行了测试。代码片段如下:Insert 插入和提交在Mybatis中做什么?,insert,mybatis,overhead,Insert,Mybatis,Overhead,我对插入操作和提交操作的开销进行了测试。代码片段如下: 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
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.println(t3-t2);
System.out.println(t4-t3);
System.out.println(t5-t4);
System.out.println(t6-t5);
System.out代码段如下所示:
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.println(t3-t2);
System.out.println(t4-t3);
System.out.println(t5-t4);
System.out.println(t6-t5);
输出为:
869
一,
一,
205
正如我们在这里看到的,第一次“插入”操作和提交操作占用了大部分开销。但是第一次插入的作用是什么,从而占用了大量开销?第一次插入打开断开连接。然后在会话期间重复使用它。从技术上讲,“插入”将执行映射器中的任何操作。。
commit方法将把sql提交到数据库,如果没有它,实际上不会插入任何内容,它可能会说(例如在eclipse中)一切都进行得很顺利,但是在db上,除非它被提交,否则不会有任何内容。希望这有助于澄清什么是DBMS?你能用普通的JDBC试试吗?