开发者社区> 问答> 正文

使用shardingjdbc不需要走分库分表的逻辑也报找不到DataSourceRule??报错

关键配置如下:

 <rdb:data-source id="shardingDataSource">
        <rdb:sharding-rule data-sources="dataSourcejdbc" default-data-source="dataSourcejdbc">
            <rdb:table-rules>
                <rdb:table-rule logic-table="t_call_detail" dynamic="true" table-strategy="tableStrategy"/>
            </rdb:table-rules>
            <rdb:default-database-strategy sharding-columns="none" algorithm-class="com.dangdang.ddframe.rdb.sharding.api.strategy.database.NoneDatabaseShardingAlgorithm"/>
            <rdb:default-table-strategy sharding-columns="none" algorithm-class="com.dangdang.ddframe.rdb.sharding.api.strategy.table.NoneTableShardingAlgorithm"/>
        </rdb:sharding-rule>
        <rdb:props>
            <prop key="metrics.enable">false</prop>
        </rdb:props>
    </rdb:data-source>

报错信息如下:

Caused by: java.lang.IllegalStateException: Missing the rule of information_schema in DataSourceRule
    at com.google.common.base.Preconditions.checkState(Preconditions.java:200)
    at com.dangdang.ddframe.rdb.sharding.jdbc.ShardingConnection.getConnectionInternal(ShardingConnection.java:101)
    at com.dangdang.ddframe.rdb.sharding.jdbc.ShardingConnection.getConnection(ShardingConnection.java:64)
    at com.dangdang.ddframe.rdb.sharding.jdbc.ShardingPreparedStatement.routeSQL(ShardingPreparedStatement.java:167)
    at com.dangdang.ddframe.rdb.sharding.jdbc.ShardingPreparedStatement.execute(ShardingPreparedStatement.java:115)
    at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:59)
    at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:73)
    at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:60)
    at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:267)
    at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:137)
    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:96)
    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:77)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
    at com.ffzx.commerce.framework.interceptor.PaginationInterceptor.intercept(PaginationInterceptor.java:84)
    at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:60)
    at com.sun.proxy.$Proxy43.query(Unknown Source)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:108)
    ... 53 more

展开
收起
爱吃鱼的程序员 2020-06-08 13:05:43 2535 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    如果不用分库分表,请不要使用sharing-jdbc,而是用spring等管理不同的数据源。把分库分表的数据源和不分的分离开

    2020-06-08 13:05:55
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Phoenix 全局索引原理与实践 立即下载
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
低代码开发师(初级)实战教程 立即下载