diff --git a/src/test/java/com/taover/repository/test/TestAutoconfigure.java b/src/test/java/com/taover/repository/test/TestAutoconfigure.java index ce2388d..4ff3866 100644 --- a/src/test/java/com/taover/repository/test/TestAutoconfigure.java +++ b/src/test/java/com/taover/repository/test/TestAutoconfigure.java @@ -8,23 +8,46 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.scheduling.annotation.EnableScheduling; +import com.taover.repository.jdbctemplate.JdbcTemplateBroadcast; import com.taover.repository.jdbctemplate.JdbcTemplateWrapperTenant; @SpringBootApplication @EnableScheduling public class TestAutoconfigure { + private static JdbcTemplateBroadcast jdbcTemplateBroadcast; + private static JdbcTemplateWrapperTenant jdbcTemplateWrapperTenant; + + public static void main(String args[]) { ConfigurableApplicationContext context = SpringApplication.run(TestAutoconfigure.class, args); + jdbcTemplateBroadcast = context.getBean(JdbcTemplateBroadcast.class); + jdbcTemplateWrapperTenant = context.getBean(JdbcTemplateWrapperTenant.class); -// JdbcTemplateBroadcast jdbcTemplateB = context.getBean(JdbcTemplateBroadcast.class); -// System.out.println(jdbcTemplateB.queryForObject("select id from wxorder_order order by id desc limit 5 ", String.class, new String[]{"wxorder_order"})); - -// JdbcTemplateWrapperTenant jdbcTemplate = context.getBean(JdbcTemplateWrapperTenant.class); -// System.out.println(jdbcTemplate.queryForObject("select id from wxorder_order limit 1", Long.class, 1L)); -// System.out.println(jdbcTemplate.queryForList("select * from wxorder_order limit 1", 1L)); -// System.out.println(jdbcTemplate.queryForList("select * from wxorder_order limit 1", 2L)); -// System.out.println(jdbcTemplate.queryForList("select * from wxorder_order_express limit 1", 1L)); +// testBroadCast(); +// testSelectSubQuery(); + //select子查询包含分片表 + testSelectShardingSubQuery(); + //where中包含子查询 + testWhereSubquery(); + } + + private static void testSelectShardingSubQuery() { + String sql = " select wc.name,(select count(*) from wxorder_order where) as 'sumOrderNum' from wxorder_channel wc limit 3; "; + } + public static void testWhereSubquery() { + + } + + public static void testBroadCast() { + System.out.println(jdbcTemplateBroadcast.queryForObject("select id from wxorder_order order by id desc limit 5 ", String.class, new String[]{"wxorder_order"})); + System.out.println(jdbcTemplateWrapperTenant.queryForObject("select id from wxorder_order limit 1", Long.class, 1L)); + System.out.println(jdbcTemplateWrapperTenant.queryForList("select * from wxorder_order limit 1", 1L)); + System.out.println(jdbcTemplateWrapperTenant.queryForList("select * from wxorder_order limit 1", 2L)); + System.out.println(jdbcTemplateWrapperTenant.queryForList("select * from wxorder_order_express limit 1", 1L)); + } + + public static void testSelectSubQuery() { String sql = " SELECT " + " wog.`goods_number` AS saleNumber," + " (SELECT sum(woe.`goods_number`) from `wxorder_order_express` as woe WHERE woe.order_goods_id = wog.id and woe.tenant_id=16) as deliveryGoodsNumber, " @@ -48,8 +71,7 @@ public class TestAutoconfigure { + " INNER JOIN wxorder_ware as ww on ww.id=wo.ware_id " + " INNER JOIN wxorder_channel_goods as wcg on wcg.id = wog.channel_goods_id" + " limit 10 "; - JdbcTemplateWrapperTenant jdbcTemplate = context.getBean(JdbcTemplateWrapperTenant.class); - List> data = jdbcTemplate.queryForList(sql, 16L); + List> data = jdbcTemplateWrapperTenant.queryForList(sql, 16L); System.out.println(data); } } diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index 7891f56..f501973 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -13,7 +13,7 @@ spring.gson.serialize-nulls=true spring.mvc.dispatch-options-request=true # shardingspere -spring.shardingsphere.datasource.names=ds0 +spring.shardingsphere.datasource.names=ds1 spring.shardingsphere.datasource.common.type=com.alibaba.druid.pool.DruidDataSource spring.shardingsphere.datasource.common.driver-class-name=com.mysql.cj.jdbc.Driver spring.shardingsphere.datasource.ds0.url=jdbc:mysql://rdsifmezqifmezqo.mysql.rds.aliyuncs.com:3306/bzyun_wxorder?characterEncoding=UTF-8 @@ -32,17 +32,17 @@ spring.shardingsphere.datasource.ds1.max-active=20 spring.shardingsphere.datasource.ds1.min-idle=5 spring.shardingsphere.datasource.ds1.max-wait=60000 -#spring.shardingsphere.rules.sharding.tables.wxorder_order.actual-data-nodes=ds0.wxorder_order -#spring.shardingsphere.rules.sharding.tables.wxorder_order.database-strategy.hint.algorithm-class-name=com.taover.repository.shardingsphere.ShardingDatabaseAlgorithmHint -#spring.shardingsphere.rules.sharding.tables.wxorder_order.table-strategy.hint.algorithm-class-name=com.taover.repository.shardingsphere.ShardingTableAlgorithmHint -#spring.shardingsphere.rules.sharding.tables.wxorder_order.key-generate-strategy.column=id -#spring.shardingsphere.rules.sharding.tables.wxorder_order.key-generate-strategy.key-generator-name=SNOWFLAKE-SELF - -#spring.shardingsphere.rules.sharding.sharding-algorithms.database_inline.type=INLINE -#spring.shardingsphere.rules.sharding.sharding-algorithms.database_inline.props.algorithm-expression=ds_0 -#spring.shardingsphere.rules.sharding.sharding-algorithms.table_inline.type=INLINE -#spring.shardingsphere.rules.sharding.sharding-algorithms.table_inline.props.algorithm-expression=wxorder_order -sql-show=true +spring.shardingsphere.rules.sharding.tables.wxorder_order.actual-data-nodes=ds0.wxorder_order +spring.shardingsphere.rules.sharding.tables.wxorder_order.database-strategy.hint.database_hint.sharding-algorithm-name=database_hint +spring.shardingsphere.rules.sharding.tables.wxorder_order.table-strategy.hint.table_hint.sharding-algorithm-name=table_hint +spring.shardingsphere.rules.sharding.tables.wxorder_order.key-generate-strategy.column=id +spring.shardingsphere.rules.sharding.tables.wxorder_order.key-generate-strategy.key-generator-name=SNOWFLAKE-SELF + +spring.shardingsphere.rules.sharding.sharding-algorithms.database_hint.type=HINT +spring.shardingsphere.rules.sharding.sharding-algorithms.database_hint.algorithm-class-name=com.taover.repository.shardingsphere.ShardingDatabaseAlgorithmHint +spring.shardingsphere.rules.sharding.sharding-algorithms.table_hint.type=HINT +spring.shardingsphere.rules.sharding.sharding-algorithms.table_hint.algorithm-class-name=com.taover.repository.shardingsphere.ShardingTableAlgorithmHint + taover.sharding.workerId=1 taover.sharding.maxVibrationOffset=3 taover.sharding.maxTolerateTimeDifferenceMilliseconds=1000 -- libgit2 0.21.2