原文地址: 作者:
测试目的:
比较JDBC,SpringJdbc和MyBatis的性能。
测试用例:
1. 查询:查询一张10000条数据的表,只取前1000条
2. 更新:对该表分别进行:
a)插入一条数据
b)更新一条数据
c)删除一条数据
3. 测试项:
a)JDBC:纯粹jdbc代码
b)JDBC.Object:jdbc的结果集转化为Object对象
c)SpringJdbc:Spring的JDBC包,同样使用Object对象
d)MyBatis:MyBatis3版本框架
测试环境:
数据库:SqlServer 2008
Java:jdk1.6 及时编译选择server
测试结果:
循环次数:是指for循环的次数,在每个循环中调用用例
得出的值:是指运行的时间,单位是ms
Read | Write | ||||||||
次序 | 循环次数 | JDBC | JDBC.Object | Spring.JDBC | MyBatis | JDBC | JDBC.Object | Spring.JDBC | MyBatis |
1 | 50 | 1922 | 2136 | 2113 | 3150 | 1193 | 1217 | 1620 | 1622 |
2 | 100 | 4303 | 4379 | 4377 | 5349 | 2105 | 2200 | 3296 | 3204 |
3 | 150 | 6395 | 6524 | 6556 | 7937 | 3088 | 3085 | 4446 | 4655 |
4 | 200 | 8485 | 8478 | 8709 | 10587 | 4013 | 4085 | 6367 | 6157 |
5 | 250 | 10560 | 10886 | 10899 | 13299 | 5003 | 5830 | 7245 | 7720 |
6 | 300 | 12720 | 13046 | 13064 | 15844 | 6074 | 6429 | 8647 | 8865 |
7 | 350 | 14861 | 15140 | 15204 | 18408 | 7158 | 7344 | 10132 | 9654 |
8 | 400 | 16954 | 17344 | 17400 | 21146 | 8364 | 8469 | 12034 | 11770 |
9 | 450 | 19036 | 19550 | 19555 | 23899 | 9515 | 10242 | 13336 | 12542 |
10 | 500 | 21200 | 21730 | 21832 | 26495 | 10133 | 11506 | 14834 | 14115 |
11 | 550 | 23331 | 23942 | 23987 | 29032 | 11605 | 12918 | 15966 | 15797 |
Read对比图:
Write对比图:
综合比较:
read和write值由上面表格平均得到,即read[JDBC]=sum(read[JDBC])/sum(循环次数)
avg值=(read*3+write*2)/5
JDBC | JDBC.Object | Spring.JDBC | MyBatis | |
read | 42.35363636 | 43.38030303 | 43.54424242 | 53.07454545 |
write | 20.68212121 | 22.21969697 | 29.67363636 | 29.12151515 |
avg | 33.6850303 | 34.91606061 | 37.996 | 43.49333333 |
综合比较图:
结论:
JDBC > JDBC.Object > Spring.JDBC > MyBatis