提交 f34b5fff 编写于 作者: T terrymanu

for checkstyle

上级 438f02f4
......@@ -21,7 +21,6 @@ import com.dangdang.ddframe.rdb.sharding.jdbc.adapter.AbstractResultSetAdapter;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.LoggerFactory;
import java.io.InputStream;
......@@ -48,7 +47,6 @@ import java.util.Map;
*
* @author zhangliang
*/
@Slf4j
public abstract class AbstractDelegateResultSet extends AbstractResultSetAdapter {
@Getter(AccessLevel.PROTECTED)
......@@ -70,7 +68,8 @@ public abstract class AbstractDelegateResultSet extends AbstractResultSetAdapter
boolean result = beforeFirst ? firstNext() : afterFirstNext();
beforeFirst = false;
if (result) {
LoggerFactory.getLogger(this.getClass().getName()).trace("Access result set, total size is: {}, result set hashcode is: {}, offset is: {}", getResultSets().size(), delegate.hashCode(), ++offset);
LoggerFactory.getLogger(this.getClass().getName()).trace(
"Access result set, total size is: {}, result set hashcode is: {}, offset is: {}", getResultSets().size(), delegate.hashCode(), ++offset);
}
return result;
}
......
......@@ -60,7 +60,7 @@ public final class ShardingDataBasesOnlyForStatementWithSelectTest extends Abstr
@Test
public void assertSelectLimitWithSingleTable() throws SQLException, DatabaseUnitException {
String sql = "SELECT * FROM `t_order` WHERE `order_id` in (%s, %s, %s) AND `user_id` in (%s,%s) limit 1,2";
assertDataSet("integrate/dataset/db/expect/select/SelectLimitWithSingleTable.xml", shardingDataSource.getConnection(), "t_order", String.format(sql, 1000, 1001, 2000,10,20));
assertDataSet("integrate/dataset/db/expect/select/SelectLimitWithSingleTable.xml", shardingDataSource.getConnection(), "t_order", String.format(sql, 1000, 1001, 2000, 10, 20));
}
@Test
......
......@@ -47,10 +47,10 @@ public final class ShardingPropertiesTest {
boolean actualMetricsEnabled = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_ENABLE);
long actualMetricsMillisecondsPeriod = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_MILLISECONDS_PERIOD);
String actualMetricsPackageName = shardingProperties.getValue(ShardingPropertiesConstant.METRICS_LOGGER_NAME);
int executorMaxSize = shardingProperties.getValue(ShardingPropertiesConstant.EXECUTOR_MAX_SIZE);
assertThat(actualMetricsEnabled, is(Boolean.valueOf(ShardingPropertiesConstant.METRICS_ENABLE.getDefaultValue())));
assertThat(actualMetricsMillisecondsPeriod, is(Long.valueOf(ShardingPropertiesConstant.METRICS_MILLISECONDS_PERIOD.getDefaultValue())));
assertThat(actualMetricsPackageName, is(ShardingPropertiesConstant.METRICS_LOGGER_NAME.getDefaultValue()));
int executorMaxSize = shardingProperties.getValue(ShardingPropertiesConstant.EXECUTOR_MAX_SIZE);
assertThat(executorMaxSize, is(Integer.valueOf(ShardingPropertiesConstant.EXECUTOR_MAX_SIZE.getDefaultValue())));
}
......
......@@ -365,8 +365,8 @@ public final class PreparedStatementExecutorTest {
private PreparedStatementExecutorWrapper createPreparedStatementExecutorWrapper(final PreparedStatement preparedStatement, final String dataSource, final String sql) {
try {
return new PreparedStatementExecutorWrapper(preparedStatement, Collections.emptyList(), new SQLExecutionUnit(dataSource, (SQLBuilder) new SQLBuilder().append(sql)));
} catch (IOException e) {
throw new RuntimeException(e);
} catch (final IOException ex) {
throw new RuntimeException(ex);
}
}
}
......@@ -110,13 +110,13 @@ public final class StatementExecutorTest {
Statement statement1 = mock(Statement.class);
StatementExecutorWrapper wrapper1 = createStatementExecutorWrapperForDQL(statement1, "ds_0");
Statement statement2 = mock(Statement.class);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDQL(statement2, "ds_1");
ResultSet resultSet1 = mock(ResultSet.class);
ResultSet resultSet2 = mock(ResultSet.class);
when(statement1.executeQuery(SELECT_FROM_DUAL)).thenReturn(resultSet1);
when(statement2.executeQuery(SELECT_FROM_DUAL)).thenReturn(resultSet2);
StatementExecutor actual = new StatementExecutor(executorEngine);
actual.addStatement(wrapper1);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDQL(statement2, "ds_1");
actual.addStatement(wrapper2);
List<ResultSet> actualResultSets = actual.executeQuery();
assertThat(actualResultSets, hasItem(resultSet1));
......@@ -155,12 +155,12 @@ public final class StatementExecutorTest {
Statement statement1 = mock(Statement.class);
StatementExecutorWrapper wrapper1 = createStatementExecutorWrapperForDQL(statement1, "ds_0");
Statement statement2 = mock(Statement.class);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDQL(statement2, "ds_1");
SQLException exp = new SQLException();
when(statement1.executeQuery(SELECT_FROM_DUAL)).thenThrow(exp);
when(statement2.executeQuery(SELECT_FROM_DUAL)).thenThrow(exp);
StatementExecutor actual = new StatementExecutor(executorEngine);
actual.addStatement(wrapper1);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDQL(statement2, "ds_1");
actual.addStatement(wrapper2);
List<ResultSet> actualResultSets = actual.executeQuery();
assertThat(actualResultSets, is(Arrays.asList((ResultSet) null, null)));
......@@ -197,11 +197,11 @@ public final class StatementExecutorTest {
Statement statement1 = mock(Statement.class);
StatementExecutorWrapper wrapper1 = createStatementExecutorWrapperForDML(statement1, "ds_0");
Statement statement2 = mock(Statement.class);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDML(statement2, "ds_1");
when(statement1.executeUpdate(DELETE_FROM_DUAL)).thenReturn(10);
when(statement2.executeUpdate(DELETE_FROM_DUAL)).thenReturn(20);
StatementExecutor actual = new StatementExecutor(executorEngine);
actual.addStatement(wrapper1);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDML(statement2, "ds_1");
actual.addStatement(wrapper2);
assertThat(actual.executeUpdate(), is(30));
verify(statement1).executeUpdate(DELETE_FROM_DUAL);
......@@ -238,12 +238,12 @@ public final class StatementExecutorTest {
Statement statement1 = mock(Statement.class);
StatementExecutorWrapper wrapper1 = createStatementExecutorWrapperForDML(statement1, "ds_0");
Statement statement2 = mock(Statement.class);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDML(statement2, "ds_1");
SQLException exp = new SQLException();
when(statement1.executeUpdate(DELETE_FROM_DUAL)).thenThrow(exp);
when(statement2.executeUpdate(DELETE_FROM_DUAL)).thenThrow(exp);
StatementExecutor actual = new StatementExecutor(executorEngine);
actual.addStatement(wrapper1);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDML(statement2, "ds_1");
actual.addStatement(wrapper2);
assertThat(actual.executeUpdate(), is(0));
verify(statement1).executeUpdate(DELETE_FROM_DUAL);
......@@ -330,11 +330,11 @@ public final class StatementExecutorTest {
Statement statement1 = mock(Statement.class);
StatementExecutorWrapper wrapper1 = createStatementExecutorWrapperForDML(statement1, "ds_0");
Statement statement2 = mock(Statement.class);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDML(statement2, "ds_1");
when(statement1.execute(DELETE_FROM_DUAL)).thenReturn(false);
when(statement2.execute(DELETE_FROM_DUAL)).thenReturn(false);
StatementExecutor actual = new StatementExecutor(executorEngine);
actual.addStatement(wrapper1);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDML(statement2, "ds_1");
actual.addStatement(wrapper2);
assertFalse(actual.execute());
verify(statement1).execute(DELETE_FROM_DUAL);
......@@ -371,12 +371,12 @@ public final class StatementExecutorTest {
Statement statement1 = mock(Statement.class);
StatementExecutorWrapper wrapper1 = createStatementExecutorWrapperForDML(statement1, "ds_0");
Statement statement2 = mock(Statement.class);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDML(statement2, "ds_1");
SQLException exp = new SQLException();
when(statement1.execute(DELETE_FROM_DUAL)).thenThrow(exp);
when(statement2.execute(DELETE_FROM_DUAL)).thenThrow(exp);
StatementExecutor actual = new StatementExecutor(executorEngine);
actual.addStatement(wrapper1);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDML(statement2, "ds_1");
actual.addStatement(wrapper2);
assertFalse(actual.execute());
verify(statement1).execute(DELETE_FROM_DUAL);
......@@ -412,11 +412,11 @@ public final class StatementExecutorTest {
Statement statement1 = mock(Statement.class);
StatementExecutorWrapper wrapper1 = createStatementExecutorWrapperForDQL(statement1, "ds_0");
Statement statement2 = mock(Statement.class);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDQL(statement2, "ds_0");
when(statement1.execute(SELECT_FROM_DUAL)).thenReturn(true);
when(statement2.execute(SELECT_FROM_DUAL)).thenReturn(true);
StatementExecutor actual = new StatementExecutor(executorEngine);
actual.addStatement(wrapper1);
StatementExecutorWrapper wrapper2 = createStatementExecutorWrapperForDQL(statement2, "ds_0");
actual.addStatement(wrapper2);
assertTrue(actual.execute());
verify(statement1).execute(SELECT_FROM_DUAL);
......@@ -483,16 +483,16 @@ public final class StatementExecutorTest {
private StatementExecutorWrapper createStatementExecutorWrapperForDQL(final Statement statement, final String dataSource) {
try {
return new StatementExecutorWrapper(statement, new SQLExecutionUnit(dataSource, (SQLBuilder) new SQLBuilder().append(SELECT_FROM_DUAL)));
} catch (final IOException e) {
throw new RuntimeException(e);
} catch (final IOException ex) {
throw new RuntimeException(ex);
}
}
private StatementExecutorWrapper createStatementExecutorWrapperForDML(final Statement statement, final String dataSource) {
try {
return new StatementExecutorWrapper(statement, new SQLExecutionUnit(dataSource, (SQLBuilder) new SQLBuilder().append(DELETE_FROM_DUAL)));
} catch (IOException e) {
throw new RuntimeException(e);
} catch (final IOException ex) {
throw new RuntimeException(ex);
}
}
}
......@@ -197,7 +197,8 @@ public abstract class AbstractBaseParseTest {
}));
}
if (null != assertObj.getLimit()) {
mergeContext.setLimit(new Limit(assertObj.getLimit().getOffset(), assertObj.getLimit().getRowCount(), assertObj.getLimit().getOffsetParameterIndex(), assertObj.getLimit().getRowCountParameterIndex()));
mergeContext.setLimit(
new Limit(assertObj.getLimit().getOffset(), assertObj.getLimit().getRowCount(), assertObj.getLimit().getOffsetParameterIndex(), assertObj.getLimit().getRowCountParameterIndex()));
}
result[5] = mergeContext;
return result;
......
......@@ -31,10 +31,10 @@ import org.junit.runners.Suite;
SQLParsedResultTest.class,
MySQLStatementTest.class,
MySQLPreparedStatementForOneParameterTest.class,
MySQLPreparedStatementForTowParametersTest.class,
MySQLPreparedStatementForTowParametersTest.class,
OrParseTest.class,
UnsupportedParseTest.class,
MySQLEvalVisitorTest.class,
UnsupportedParseTest.class,
MySQLEvalVisitorTest.class
})
public class AllParserTests {
}
......@@ -33,7 +33,7 @@ public class MySQLEvalVisitorTest {
SQLVariantRefExpr expr = new SQLVariantRefExpr("?");
expr.setIndex(1);
MySQLEvalVisitor visitor = new MySQLEvalVisitor();
visitor.setParameters(Lists.<Object>newArrayList(1 ,2));
visitor.setParameters(Lists.<Object>newArrayList(1, 2));
expr.accept(visitor);
assertThat((Integer) SQLEvalVisitorUtils.getValue(expr), is(2));
assertThat((Integer) expr.getAttribute(MySQLEvalVisitor.EVAL_VAR_INDEX), is(1));
......@@ -44,7 +44,7 @@ public class MySQLEvalVisitorTest {
SQLVariantRefExpr expr = new SQLVariantRefExpr("?");
expr.setIndex(2);
MySQLEvalVisitor visitor = new MySQLEvalVisitor();
visitor.setParameters(Lists.<Object>newArrayList(1 ,2));
visitor.setParameters(Lists.<Object>newArrayList(1, 2));
expr.accept(visitor);
assertThat(SQLEvalVisitorUtils.getValue(expr), nullValue());
}
......@@ -55,7 +55,7 @@ public class MySQLEvalVisitorTest {
expr.setIndex(1);
expr.getAttributes().put(MySQLEvalVisitor.EVAL_VALUE, "test");
MySQLEvalVisitor visitor = new MySQLEvalVisitor();
visitor.setParameters(Lists.<Object>newArrayList(1 ,2));
visitor.setParameters(Lists.<Object>newArrayList(1, 2));
expr.accept(visitor);
assertThat((String) SQLEvalVisitorUtils.getValue(expr), is("test"));
}
......@@ -65,7 +65,7 @@ public class MySQLEvalVisitorTest {
SQLVariantRefExpr expr = new SQLVariantRefExpr("");
expr.setIndex(1);
MySQLEvalVisitor visitor = new MySQLEvalVisitor();
visitor.setParameters(Lists.<Object>newArrayList(1 ,2));
visitor.setParameters(Lists.<Object>newArrayList(1, 2));
expr.accept(visitor);
assertThat(SQLEvalVisitorUtils.getValue(expr), nullValue());
}
......@@ -75,8 +75,8 @@ public class MySQLEvalVisitorTest {
SQLVariantRefExpr expr = new SQLVariantRefExpr("?");
expr.setIndex(1);
MySQLEvalVisitor visitor = new MySQLEvalVisitor();
visitor.setParameters(Lists.<Object>newArrayList(1 ,null));
visitor.setParameters(Lists.<Object>newArrayList(1, null));
expr.accept(visitor);
assertThat(SQLEvalVisitorUtils.getValue(expr), is(MySQLEvalVisitor.EVAL_VALUE_NULL));
}
}
\ No newline at end of file
}
......@@ -149,35 +149,38 @@ public final class SelectSingleTableTest extends AbstractDynamicRouteSqlTest {
@Test
public void assertSelectOrLimit() throws SQLParserException {
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit 5", Arrays.<Object>asList(1, 2, 100), 2,
Arrays.asList("ds_0", "ds_1"), Arrays.asList("SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 5", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 5"));
Arrays.asList("ds_0", "ds_1"),
Arrays.asList("SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 5", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 5"));
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit 2,5", Arrays.<Object>asList(1, 2, 100), 2,
Arrays.asList("ds_0", "ds_1"), Arrays.asList("SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 0, 7", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 0, 7"));
Arrays.asList("ds_0", "ds_1"), Arrays.asList(
"SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 0, 7", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 0, 7"));
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit 5 offset 2", Arrays.<Object>asList(1, 2, 100), 2,
Arrays.asList("ds_0", "ds_1"), Arrays.asList("SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 0, 7", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 0, 7"));
Arrays.asList("ds_0", "ds_1"), Arrays.asList(
"SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 0, 7", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 0, 7"));
List<Object> parameters = Arrays.<Object>asList(1, 2, 100, 5);
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit ?", parameters, 2,
Arrays.asList("ds_0", "ds_1"), Arrays.asList("SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?"));
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit ?", parameters, 2, Arrays.asList("ds_0", "ds_1"),
Arrays.asList("SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?"));
assertThat(parameters, is(Arrays.<Object>asList(1, 2, 100, 5)));
parameters = Arrays.<Object>asList(1, 2, 100, 2, 5);
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit ?,?", parameters, 2,
Arrays.asList("ds_0", "ds_1"), Arrays.asList("SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?, ?", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?, ?"));
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit ?,?", parameters, 2, Arrays.asList("ds_0", "ds_1"), Arrays.asList(
"SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?, ?", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?, ?"));
assertThat(parameters, is(Arrays.<Object>asList(1, 2, 100, 0, 7)));
parameters = Arrays.<Object>asList(1, 2, 100, 5, 2);
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit ? offset ?", parameters, 2,
Arrays.asList("ds_0", "ds_1"), Arrays.asList("SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?, ?", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?, ?"));
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit ? offset ?", parameters, 2, Arrays.asList("ds_0", "ds_1"), Arrays.asList(
"SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?, ?", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?, ?"));
assertThat(parameters, is(Arrays.<Object>asList(1, 2, 100, 0, 7)));
parameters = Arrays.<Object>asList(1, 2, 100, 5);
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit 2,?", parameters, 2,
Arrays.asList("ds_0", "ds_1"), Arrays.asList("SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 0, ?", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 0, ?"));
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit 2,?", parameters, 2, Arrays.asList("ds_0", "ds_1"), Arrays.asList(
"SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 0, ?", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT 0, ?"));
assertThat(parameters, is(Arrays.<Object>asList(1, 2, 100, 7)));
parameters = Arrays.<Object>asList(1, 2, 100, 2);
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit ?,5", parameters, 2,
Arrays.asList("ds_0", "ds_1"), Arrays.asList("SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?, 7", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?, 7"));
assertMultipleTargets("select * from order where order_id = ? or order_id = ? or order_id = ? limit ?,5", parameters, 2, Arrays.asList("ds_0", "ds_1"), Arrays.asList(
"SELECT * FROM order_0 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?, 7", "SELECT * FROM order_1 WHERE order_id = ? OR order_id = ? OR order_id = ? LIMIT ?, 7"));
assertThat(parameters, is(Arrays.<Object>asList(1, 2, 100, 0)));
}
}
......@@ -9,7 +9,7 @@ weight = 12
> 提示:阅读本文前请详细预读 [使用指南](../user_guide)
## 背景
`Shanrding-JDBC`有初步了解的朋友已经发现了:在编写分片算法的时候,传入的分片键值是来自`SQL`语句中`WHERE`条件的。
`Sharding-JDBC`有初步了解的朋友已经发现了:在编写分片算法的时候,传入的分片键值是来自`SQL`语句中`WHERE`条件的。
例如逻辑表`t_order`如果其数据源分片键为`user_id`
分片算法是奇数值路由到`db1`偶数值路由到`db2`;表分片键为`order_id`
分片算法是奇数值路由到`t_order_1`偶数值路由到`t_order_2`,如果执行如下sql语句:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册