为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】:8 【操作系统】:windows 【CPU】: 【问题描述】*:springboot3.x+sharding-jdbc-core5.4.0+mybatisplus3.5.5+druid1.2.16,进行分库分表,一直显示没有这个表,为什么(数据库有表的,去除sharding就是可以直接用的,加上就凉了)?还是方式不对,网上的帖子和官网的方式测试了很多很多,还是不行,请问有没有示例或者指导一下(救命啊)。
您好! 报“Table 'test' doesn't exist”的主要原因是配置错误。
解决此问题的要点如下: 1、连接达梦的数据源配置:应将standardJdbcUrl改成url; 2、理解sharding中的逻辑表概念,例如:java中的entity的TEST(注意TEST在JAVA中大小写的区别,最好为大写)表,它是一个sharding中的逻辑表概念,并不是物理表。对于分片的(真实存在于数据库中的)物理表test_0和test_1它是需要事先手动创建的。数据有数据的rule规则。 请参考sharding的配置,地址: https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-jdbc/yaml-config/rules/sharding/ 3、demo附件及主要修改的地方 您给的demo附件已修改,数据分片及查询均正确。demo使用的框架:JAVA17 + springboot3.x + mybatisplus 3.5.5 + shardingsphere-jdbc 5.5.2 这个是没有问题的。 3.1、下边的图片是主要修改的地方以及运行的结果,请参考:
3.2、已修改后的demo附件,请参考。 sharding-test(2).zip
您好!
报“Table 'test' doesn't exist”的主要原因是配置错误。
解决此问题的要点如下:






1、连接达梦的数据源配置:应将standardJdbcUrl改成url;
2、理解sharding中的逻辑表概念,例如:java中的entity的TEST(注意TEST在JAVA中大小写的区别,最好为大写)表,它是一个sharding中的逻辑表概念,并不是物理表。对于分片的(真实存在于数据库中的)物理表test_0和test_1它是需要事先手动创建的。数据有数据的rule规则。
请参考sharding的配置,地址: https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-jdbc/yaml-config/rules/sharding/
3、demo附件及主要修改的地方
您给的demo附件已修改,数据分片及查询均正确。demo使用的框架:JAVA17 + springboot3.x + mybatisplus 3.5.5 + shardingsphere-jdbc 5.5.2 这个是没有问题的。
3.1、下边的图片是主要修改的地方以及运行的结果,请参考:
3.2、已修改后的demo附件,请参考。
sharding-test(2).zip