Loading sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/jdbc/core/statement/ShardingPreparedStatementTableOnlyTest.java +9 −7 Original line number Diff line number Diff line Loading @@ -36,6 +36,10 @@ public final class ShardingPreparedStatementTableOnlyTest extends AbstractShardi private ShardingDataSource shardingDataSource; private String sql = "SELECT COUNT(*) AS orders_count FROM t_order WHERE status = ?"; private String sql2 = "SELECT user_id from t_order where order_id = %d"; @Before public void init() throws SQLException { shardingDataSource = getShardingDataSource(); Loading @@ -43,7 +47,6 @@ public final class ShardingPreparedStatementTableOnlyTest extends AbstractShardi @Test public void assertExecuteQueryWithParameter() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -58,10 +61,9 @@ public final class ShardingPreparedStatementTableOnlyTest extends AbstractShardi @Test public void assertAddBatch() throws SQLException { String sql = "INSERT INTO `t_order`(`order_id`, `user_id`, `status`) VALUES (?,?,?)"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql); PreparedStatement preparedStatement = connection.prepareStatement(getDatabaseTestSQL().getInsertWithAllPlaceholdersSql()); java.sql.Statement queryStatement = connection.createStatement()) { preparedStatement.setInt(1, 3101); preparedStatement.setInt(2, 11); Loading @@ -84,22 +86,22 @@ public final class ShardingPreparedStatementTableOnlyTest extends AbstractShardi assertThat(each, is(1)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `user_id` from `t_order` where `order_id` = 3101")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 3101))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(11)); assertFalse(rs.next()); } try (ResultSet rs = queryStatement.executeQuery("SELECT `user_id` from `t_order` where `order_id` = 3102")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 3102))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(12)); assertFalse(rs.next()); } try (ResultSet rs = queryStatement.executeQuery("SELECT `user_id` from `t_order` where `order_id` = 3111")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 3111))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(21)); assertFalse(rs.next()); } try (ResultSet rs = queryStatement.executeQuery("SELECT `user_id` from `t_order` where `order_id` = 3112")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 3112))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(22)); assertFalse(rs.next()); Loading sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/jdbc/core/statement/ShardingPreparedStatementTest.java +22 −24 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import java.sql.Statement; import java.util.ArrayList; import java.util.List; import static com.dangdang.ddframe.rdb.integrate.util.SqlPlaceholderUtil.replacePreparedStatement; import static org.hamcrest.CoreMatchers.hasItem; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertFalse; Loading @@ -44,6 +45,10 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas private ShardingDataSource shardingDataSource; private String sql = "SELECT COUNT(*) AS orders_count FROM t_order WHERE status = ?"; private String sql2 = "SELECT order_id from t_order where user_id = %d and status = 'BATCH'"; @Before public void init() throws SQLException { shardingDataSource = getShardingDataSource(); Loading @@ -51,7 +56,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithParameter() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -72,7 +76,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithoutParameter() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; String sql = getDatabaseTestSQL().getSelectCountAliasSql(); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -90,7 +94,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteUpdateWithParameter() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = ?"; String sql = replacePreparedStatement(getDatabaseTestSQL().getDeleteWithoutShardingValueSql()); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -105,7 +109,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteUpdateWithoutParameter() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = 'init'"; String sql = String.format(getDatabaseTestSQL().getDeleteWithoutShardingValueSql(), "'init'"); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -117,7 +121,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteWithParameter() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -138,7 +141,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteWithoutParameter() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = 'init'"; String sql = String.format(getDatabaseTestSQL().getDeleteWithoutShardingValueSql(), "'init'"); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -150,7 +153,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithResultSetTypeAndResultSetConcurrency() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)) { Loading @@ -163,7 +165,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithResultSetTypeAndResultSetConcurrencyAndResultSetHoldability() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT)) { Loading @@ -176,7 +177,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithAutoGeneratedKeys() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, Statement.NO_GENERATED_KEYS)) { Loading @@ -189,7 +189,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithColumnIndexes() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, new int[] {1})) { Loading @@ -202,7 +201,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithColumnNames() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, new String[] {"orders_count"})) { Loading @@ -229,7 +227,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas } }; EventBusInstance.getInstance().register(listener); String sql = "INSERT INTO `t_order`(`order_id`, `user_id`, `status`) VALUES (?,?,?)"; String sql = getDatabaseTestSQL().getInsertWithAllPlaceholdersSql(); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading Loading @@ -260,7 +258,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertAddBatchWithoutGenerateKeyColumn() throws SQLException { String sql = "INSERT INTO `t_order`(`user_id`, `status`) VALUES (?,?)"; String sql = replacePreparedStatement(getDatabaseTestSQL().getInsertWithAutoIncrementColumnSql()); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); Loading Loading @@ -291,19 +289,19 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas assertTrue(generateKeyResultSet.next()); assertThat(generateKeyResultSet.getLong(1), is(4L)); assertFalse(generateKeyResultSet.next()); try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 11")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 11))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(1)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 12")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 12))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(2)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 21")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 21))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(3)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 22")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 22))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(4)); } Loading @@ -312,7 +310,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertAddBatchWithGenerateKeyColumn() throws SQLException { String sql = "INSERT INTO `t_order`(`order_id`, `user_id`, `status`) VALUES (?,?,?)"; String sql = getDatabaseTestSQL().getInsertWithAllPlaceholdersSql(); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); Loading Loading @@ -347,19 +345,19 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas assertTrue(generateKeyResultSet.next()); assertThat(generateKeyResultSet.getLong(1), is(4L)); assertFalse(generateKeyResultSet.next()); try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 11")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 11))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(1)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 12")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 12))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(2)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 21")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 21))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(3)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 22")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 22))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(4)); } Loading @@ -368,7 +366,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertUpdateBatch() throws SQLException { String sql = "UPDATE `t_order` SET `status` = ? WHERE `status` = ?"; String sql = replacePreparedStatement(getDatabaseTestSQL().getUpdateWithoutShardingValueSql()); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -392,7 +390,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertClearBatch() throws SQLException { String sql = "INSERT INTO `t_order`(`order_id`, `user_id`, `status`) VALUES (?,?,?)"; String sql = getDatabaseTestSQL().getInsertWithAllPlaceholdersSql(); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/jdbc/core/statement/ShardingStatementTest.java +22 −26 Original line number Diff line number Diff line Loading @@ -36,6 +36,12 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU private ShardingDataSource shardingDataSource; private String sql = "SELECT COUNT(*) AS orders_count FROM t_order WHERE status = 'init'"; private String sql2 = "DELETE FROM t_order WHERE status ='init'"; private String sql3 = "INSERT INTO t_order(user_id, status) VALUES (%d, '%s')"; @Before public void init() throws SQLException { shardingDataSource = getShardingDataSource(); Loading @@ -43,7 +49,6 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteQuery() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement(); Loading @@ -55,17 +60,15 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteUpdate() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { assertThat(stmt.executeUpdate(sql), is(40)); assertThat(stmt.executeUpdate(sql2), is(40)); } } @Test public void assertExecute() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { Loading @@ -77,7 +80,6 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteQueryWithResultSetTypeAndResultSetConcurrency() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); Loading @@ -89,7 +91,6 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteQueryWithResultSetTypeAndResultSetConcurrencyAndResultSetHoldability() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT); Loading @@ -101,37 +102,35 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteUpdateWithAutoGeneratedKeys() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { assertThat(stmt.executeUpdate(sql, Statement.NO_GENERATED_KEYS), is(40)); assertThat(stmt.executeUpdate(sql2, Statement.NO_GENERATED_KEYS), is(40)); } } @Test public void assertExecuteUpdateWithColumnIndexes() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { assertThat(stmt.executeUpdate(sql, new int[] {1}), is(40)); assertThat(stmt.executeUpdate(sql2, new int[] {1}), is(40)); } } @Test public void assertExecuteUpdateWithColumnNames() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = 'init'"; if (isAliasSupport()) { try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { assertThat(stmt.executeUpdate(sql, new String[] {"orders_count"}), is(40)); assertThat(stmt.executeUpdate(sql2, new String[]{"orders_count"}), is(40)); } } } @Test public void assertExecuteWithAutoGeneratedKeys() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { Loading @@ -143,7 +142,6 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteWithColumnIndexes() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { Loading @@ -155,7 +153,6 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteWithColumnNames() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { Loading @@ -176,31 +173,30 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertGetGeneratedKeys() throws SQLException { String sql = "INSERT INTO `t_order`(`user_id`, `status`) VALUES (%d,'%s')"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { assertFalse(stmt.execute(String.format(sql, 1, "init"))); assertFalse(stmt.execute(String.format(sql3, 1, "init"))); assertFalse(stmt.getGeneratedKeys().next()); assertFalse(stmt.execute(String.format(sql, 1, "init"), Statement.NO_GENERATED_KEYS)); assertFalse(stmt.execute(String.format(sql3, 1, "init"), Statement.NO_GENERATED_KEYS)); assertFalse(stmt.getGeneratedKeys().next()); assertFalse(stmt.execute(String.format(sql, 1, "init"), Statement.RETURN_GENERATED_KEYS)); assertFalse(stmt.execute(String.format(sql3, 1, "init"), Statement.RETURN_GENERATED_KEYS)); ResultSet generatedKeysResultSet = stmt.getGeneratedKeys(); assertTrue(generatedKeysResultSet.next()); assertThat(generatedKeysResultSet.getLong(1), is(3L)); assertFalse(stmt.execute(String.format(sql, 1, "init"), new int[]{1})); assertFalse(stmt.execute(String.format(sql3, 1, "init"), new int[]{1})); generatedKeysResultSet = stmt.getGeneratedKeys(); assertTrue(generatedKeysResultSet.next()); assertThat(generatedKeysResultSet.getLong(1), is(4L)); assertFalse(stmt.execute(String.format(sql, 1, "init"), new String[]{"user_id"})); assertFalse(stmt.execute(String.format(sql3, 1, "init"), new String[]{"user_id"})); generatedKeysResultSet = stmt.getGeneratedKeys(); assertTrue(generatedKeysResultSet.next()); assertThat(generatedKeysResultSet.getLong(1), is(5L)); assertFalse(stmt.execute(String.format(sql, 1, "init"), new int[]{2})); assertFalse(stmt.execute(String.format(sql3, 1, "init"), new int[]{2})); generatedKeysResultSet = stmt.getGeneratedKeys(); assertTrue(generatedKeysResultSet.next()); assertThat(generatedKeysResultSet.getLong(1), is(6L)); assertFalse(stmt.execute(String.format(sql, 1, "init"), new String[]{"no"})); assertFalse(stmt.execute(String.format(sql3, 1, "init"), new String[]{"no"})); generatedKeysResultSet = stmt.getGeneratedKeys(); assertTrue(generatedKeysResultSet.next()); assertThat(generatedKeysResultSet.getLong(1), is(7L)); Loading Loading
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/jdbc/core/statement/ShardingPreparedStatementTableOnlyTest.java +9 −7 Original line number Diff line number Diff line Loading @@ -36,6 +36,10 @@ public final class ShardingPreparedStatementTableOnlyTest extends AbstractShardi private ShardingDataSource shardingDataSource; private String sql = "SELECT COUNT(*) AS orders_count FROM t_order WHERE status = ?"; private String sql2 = "SELECT user_id from t_order where order_id = %d"; @Before public void init() throws SQLException { shardingDataSource = getShardingDataSource(); Loading @@ -43,7 +47,6 @@ public final class ShardingPreparedStatementTableOnlyTest extends AbstractShardi @Test public void assertExecuteQueryWithParameter() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -58,10 +61,9 @@ public final class ShardingPreparedStatementTableOnlyTest extends AbstractShardi @Test public void assertAddBatch() throws SQLException { String sql = "INSERT INTO `t_order`(`order_id`, `user_id`, `status`) VALUES (?,?,?)"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql); PreparedStatement preparedStatement = connection.prepareStatement(getDatabaseTestSQL().getInsertWithAllPlaceholdersSql()); java.sql.Statement queryStatement = connection.createStatement()) { preparedStatement.setInt(1, 3101); preparedStatement.setInt(2, 11); Loading @@ -84,22 +86,22 @@ public final class ShardingPreparedStatementTableOnlyTest extends AbstractShardi assertThat(each, is(1)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `user_id` from `t_order` where `order_id` = 3101")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 3101))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(11)); assertFalse(rs.next()); } try (ResultSet rs = queryStatement.executeQuery("SELECT `user_id` from `t_order` where `order_id` = 3102")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 3102))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(12)); assertFalse(rs.next()); } try (ResultSet rs = queryStatement.executeQuery("SELECT `user_id` from `t_order` where `order_id` = 3111")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 3111))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(21)); assertFalse(rs.next()); } try (ResultSet rs = queryStatement.executeQuery("SELECT `user_id` from `t_order` where `order_id` = 3112")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 3112))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(22)); assertFalse(rs.next()); Loading
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/jdbc/core/statement/ShardingPreparedStatementTest.java +22 −24 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import java.sql.Statement; import java.util.ArrayList; import java.util.List; import static com.dangdang.ddframe.rdb.integrate.util.SqlPlaceholderUtil.replacePreparedStatement; import static org.hamcrest.CoreMatchers.hasItem; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertFalse; Loading @@ -44,6 +45,10 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas private ShardingDataSource shardingDataSource; private String sql = "SELECT COUNT(*) AS orders_count FROM t_order WHERE status = ?"; private String sql2 = "SELECT order_id from t_order where user_id = %d and status = 'BATCH'"; @Before public void init() throws SQLException { shardingDataSource = getShardingDataSource(); Loading @@ -51,7 +56,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithParameter() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -72,7 +76,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithoutParameter() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; String sql = getDatabaseTestSQL().getSelectCountAliasSql(); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -90,7 +94,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteUpdateWithParameter() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = ?"; String sql = replacePreparedStatement(getDatabaseTestSQL().getDeleteWithoutShardingValueSql()); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -105,7 +109,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteUpdateWithoutParameter() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = 'init'"; String sql = String.format(getDatabaseTestSQL().getDeleteWithoutShardingValueSql(), "'init'"); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -117,7 +121,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteWithParameter() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -138,7 +141,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteWithoutParameter() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = 'init'"; String sql = String.format(getDatabaseTestSQL().getDeleteWithoutShardingValueSql(), "'init'"); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -150,7 +153,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithResultSetTypeAndResultSetConcurrency() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)) { Loading @@ -163,7 +165,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithResultSetTypeAndResultSetConcurrencyAndResultSetHoldability() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT)) { Loading @@ -176,7 +177,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithAutoGeneratedKeys() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, Statement.NO_GENERATED_KEYS)) { Loading @@ -189,7 +189,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithColumnIndexes() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, new int[] {1})) { Loading @@ -202,7 +201,6 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertExecuteQueryWithColumnNames() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = ?"; try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, new String[] {"orders_count"})) { Loading @@ -229,7 +227,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas } }; EventBusInstance.getInstance().register(listener); String sql = "INSERT INTO `t_order`(`order_id`, `user_id`, `status`) VALUES (?,?,?)"; String sql = getDatabaseTestSQL().getInsertWithAllPlaceholdersSql(); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading Loading @@ -260,7 +258,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertAddBatchWithoutGenerateKeyColumn() throws SQLException { String sql = "INSERT INTO `t_order`(`user_id`, `status`) VALUES (?,?)"; String sql = replacePreparedStatement(getDatabaseTestSQL().getInsertWithAutoIncrementColumnSql()); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); Loading Loading @@ -291,19 +289,19 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas assertTrue(generateKeyResultSet.next()); assertThat(generateKeyResultSet.getLong(1), is(4L)); assertFalse(generateKeyResultSet.next()); try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 11")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 11))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(1)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 12")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 12))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(2)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 21")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 21))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(3)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 22")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 22))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(4)); } Loading @@ -312,7 +310,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertAddBatchWithGenerateKeyColumn() throws SQLException { String sql = "INSERT INTO `t_order`(`order_id`, `user_id`, `status`) VALUES (?,?,?)"; String sql = getDatabaseTestSQL().getInsertWithAllPlaceholdersSql(); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); Loading Loading @@ -347,19 +345,19 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas assertTrue(generateKeyResultSet.next()); assertThat(generateKeyResultSet.getLong(1), is(4L)); assertFalse(generateKeyResultSet.next()); try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 11")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 11))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(1)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 12")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 12))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(2)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 21")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 21))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(3)); } try (ResultSet rs = queryStatement.executeQuery("SELECT `order_id` from `t_order` where `user_id` = 22")) { try (ResultSet rs = queryStatement.executeQuery(String.format(sql2, 22))) { assertTrue(rs.next()); assertThat(rs.getInt(1), is(4)); } Loading @@ -368,7 +366,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertUpdateBatch() throws SQLException { String sql = "UPDATE `t_order` SET `status` = ? WHERE `status` = ?"; String sql = replacePreparedStatement(getDatabaseTestSQL().getUpdateWithoutShardingValueSql()); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading @@ -392,7 +390,7 @@ public final class ShardingPreparedStatementTest extends AbstractShardingDatabas @Test public void assertClearBatch() throws SQLException { String sql = "INSERT INTO `t_order`(`order_id`, `user_id`, `status`) VALUES (?,?,?)"; String sql = getDatabaseTestSQL().getInsertWithAllPlaceholdersSql(); try ( Connection connection = shardingDataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) { Loading
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/jdbc/core/statement/ShardingStatementTest.java +22 −26 Original line number Diff line number Diff line Loading @@ -36,6 +36,12 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU private ShardingDataSource shardingDataSource; private String sql = "SELECT COUNT(*) AS orders_count FROM t_order WHERE status = 'init'"; private String sql2 = "DELETE FROM t_order WHERE status ='init'"; private String sql3 = "INSERT INTO t_order(user_id, status) VALUES (%d, '%s')"; @Before public void init() throws SQLException { shardingDataSource = getShardingDataSource(); Loading @@ -43,7 +49,6 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteQuery() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement(); Loading @@ -55,17 +60,15 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteUpdate() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { assertThat(stmt.executeUpdate(sql), is(40)); assertThat(stmt.executeUpdate(sql2), is(40)); } } @Test public void assertExecute() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { Loading @@ -77,7 +80,6 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteQueryWithResultSetTypeAndResultSetConcurrency() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); Loading @@ -89,7 +91,6 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteQueryWithResultSetTypeAndResultSetConcurrencyAndResultSetHoldability() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT); Loading @@ -101,37 +102,35 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteUpdateWithAutoGeneratedKeys() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { assertThat(stmt.executeUpdate(sql, Statement.NO_GENERATED_KEYS), is(40)); assertThat(stmt.executeUpdate(sql2, Statement.NO_GENERATED_KEYS), is(40)); } } @Test public void assertExecuteUpdateWithColumnIndexes() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { assertThat(stmt.executeUpdate(sql, new int[] {1}), is(40)); assertThat(stmt.executeUpdate(sql2, new int[] {1}), is(40)); } } @Test public void assertExecuteUpdateWithColumnNames() throws SQLException { String sql = "DELETE FROM `t_order` WHERE `status` = 'init'"; if (isAliasSupport()) { try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { assertThat(stmt.executeUpdate(sql, new String[] {"orders_count"}), is(40)); assertThat(stmt.executeUpdate(sql2, new String[]{"orders_count"}), is(40)); } } } @Test public void assertExecuteWithAutoGeneratedKeys() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { Loading @@ -143,7 +142,6 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteWithColumnIndexes() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { Loading @@ -155,7 +153,6 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertExecuteWithColumnNames() throws SQLException { String sql = "SELECT COUNT(*) AS `orders_count` FROM `t_order` WHERE `status` = 'init'"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { Loading @@ -176,31 +173,30 @@ public final class ShardingStatementTest extends AbstractShardingDatabaseOnlyDBU @Test public void assertGetGeneratedKeys() throws SQLException { String sql = "INSERT INTO `t_order`(`user_id`, `status`) VALUES (%d,'%s')"; try ( Connection connection = shardingDataSource.getConnection(); Statement stmt = connection.createStatement()) { assertFalse(stmt.execute(String.format(sql, 1, "init"))); assertFalse(stmt.execute(String.format(sql3, 1, "init"))); assertFalse(stmt.getGeneratedKeys().next()); assertFalse(stmt.execute(String.format(sql, 1, "init"), Statement.NO_GENERATED_KEYS)); assertFalse(stmt.execute(String.format(sql3, 1, "init"), Statement.NO_GENERATED_KEYS)); assertFalse(stmt.getGeneratedKeys().next()); assertFalse(stmt.execute(String.format(sql, 1, "init"), Statement.RETURN_GENERATED_KEYS)); assertFalse(stmt.execute(String.format(sql3, 1, "init"), Statement.RETURN_GENERATED_KEYS)); ResultSet generatedKeysResultSet = stmt.getGeneratedKeys(); assertTrue(generatedKeysResultSet.next()); assertThat(generatedKeysResultSet.getLong(1), is(3L)); assertFalse(stmt.execute(String.format(sql, 1, "init"), new int[]{1})); assertFalse(stmt.execute(String.format(sql3, 1, "init"), new int[]{1})); generatedKeysResultSet = stmt.getGeneratedKeys(); assertTrue(generatedKeysResultSet.next()); assertThat(generatedKeysResultSet.getLong(1), is(4L)); assertFalse(stmt.execute(String.format(sql, 1, "init"), new String[]{"user_id"})); assertFalse(stmt.execute(String.format(sql3, 1, "init"), new String[]{"user_id"})); generatedKeysResultSet = stmt.getGeneratedKeys(); assertTrue(generatedKeysResultSet.next()); assertThat(generatedKeysResultSet.getLong(1), is(5L)); assertFalse(stmt.execute(String.format(sql, 1, "init"), new int[]{2})); assertFalse(stmt.execute(String.format(sql3, 1, "init"), new int[]{2})); generatedKeysResultSet = stmt.getGeneratedKeys(); assertTrue(generatedKeysResultSet.next()); assertThat(generatedKeysResultSet.getLong(1), is(6L)); assertFalse(stmt.execute(String.format(sql, 1, "init"), new String[]{"no"})); assertFalse(stmt.execute(String.format(sql3, 1, "init"), new String[]{"no"})); generatedKeysResultSet = stmt.getGeneratedKeys(); assertTrue(generatedKeysResultSet.next()); assertThat(generatedKeysResultSet.getLong(1), is(7L)); Loading