diff --git a/core/pom.xml b/core/pom.xml index 7fa2f6af..67c52c15 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -138,6 +138,13 @@ spring-jdbc 4.0.2.RELEASE + + test + org.jodd + jodd-db + + 3.7.1 + org.mockito diff --git a/core/src/test/java/org/sql2o/performance/PojoPerformanceTest.java b/core/src/test/java/org/sql2o/performance/PojoPerformanceTest.java index 4520c97f..10d64de3 100644 --- a/core/src/test/java/org/sql2o/performance/PojoPerformanceTest.java +++ b/core/src/test/java/org/sql2o/performance/PojoPerformanceTest.java @@ -1,5 +1,8 @@ package org.sql2o.performance; +import jodd.db.DbSession; +import jodd.db.connection.DataSourceConnectionProvider; +import jodd.db.oom.DbOomQuery; import org.apache.commons.dbutils.*; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.ibatis.annotations.Result; @@ -144,6 +147,8 @@ public void select() tests.add(new ApacheDbUtilsTypicalSelect()); tests.add(new MyBatisSelect()); tests.add(new SpringJdbcTemplateSelect()); + tests.add(new DbOomOptimalSelect()); + tests.add(new DbOomTypicalSelect()); System.out.println("Warming up..."); tests.run(ITERATIONS); @@ -550,4 +555,78 @@ public void run(int input) public void close() {} } + + abstract class DbOomSelect extends PerformanceTestBase + { + private DbSession session; + private DbOomQuery query; + + abstract String getSQL(); + + @Override + public void init() + { +// session = new DbSession(new ConnectionProvider() { +// @Override +// public void init() { +// +// } +// +// @Override +// public Connection getConnection() { +// try { +// return sql2o.getConnectionSource().getConnection(); +// } catch (SQLException e) { +// throw new RuntimeException(e); +// } +// } +// +// @Override +// public void closeConnection(Connection connection) { +// try { +// connection.close(); +// } catch (SQLException e) { +// throw new RuntimeException(e); +// } +// } +// +// @Override +// public void close() { +// // no-op +// } +// }); + session = new DbSession(new DataSourceConnectionProvider(sql2o.getDataSource())); + query = new DbOomQuery(session, getSQL() + " WHERE id = ?"); + } + + @Override + public void run(int input) + { + query.setInteger(1, input); + query.find(Post.class); + } + + @Override + public void close() + { + session.closeSession(); + } + } + + class DbOomTypicalSelect extends DbOomSelect + { + @Override + String getSQL() { + return SELECT_TYPICAL; + } + } + + class DbOomOptimalSelect extends DbOomSelect + { + @Override + String getSQL() { + return SELECT_OPTIMAL; + } + } + }