yanghekuan opened a new issue, #19901:
URL: https://github.com/apache/shardingsphere/issues/19901

   Using MyBatis + Shardingsphere5.1.1 according to the monthly score table, 
but I can use MyBatis plus, using MyBatis mapper. XML file will report errors, 
why?
   2022-08-05 16:25:46.676  INFO 103524 --- [nio-8888-exec-1] 
o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring 
DispatcherServlet 'dispatcherServlet'
   2022-08-05 16:25:46.676  INFO 103524 --- [nio-8888-exec-1] 
o.s.web.servlet.DispatcherServlet        : Initializing Servlet 
'dispatcherServlet'
   2022-08-05 16:25:46.677  INFO 103524 --- [nio-8888-exec-1] 
o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms
   2022-08-05 16:25:47.114 ERROR 103524 --- [nio-8888-exec-1] 
o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet 
[dispatcherServlet] in context with path [] threw exception [Request processing 
failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested 
exception is org.apache.ibatis.exceptions.PersistenceException: 
   ### Error updating database.  Cause: java.lang.IllegalStateException: Insert 
statement does not support sharding table routing to multiple data nodes.
   ### The error may exist in file 
[D:\IdeaWorkspace\sharding\target\classes\mapper\HssHistoryMapper.xml]
   ### The error may involve 
com.ehl.sharding.mapper.HssHistoryMapper.insertOrder-Inline
   ### The error occurred while setting parameters
   ### SQL: insert into order_info 
(order_id,trans_date,trans_no,trans_acct_no,offset_bal,create_time) values      
       (?,?,?,?,?,curdate())
   ### Cause: java.lang.IllegalStateException: Insert statement does not 
support sharding table routing to multiple data nodes.] with root cause
   
   java.lang.IllegalStateException: Insert statement does not support sharding 
table routing to multiple data nodes.
        at 
com.google.common.base.Preconditions.checkState(Preconditions.java:508) 
~[guava-30.0-jre.jar:na]
        at 
org.apache.shardingsphere.sharding.route.engine.validator.dml.impl.ShardingInsertStatementValidator.postValidate(ShardingInsertStatementValidator.java:101)
 ~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
        at 
org.apache.shardingsphere.sharding.route.engine.ShardingSQLRouter.lambda$createRouteContext$1(ShardingSQLRouter.java:57)
 ~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
        at java.util.Optional.ifPresent(Optional.java:159) ~[na:1.8.0_191]
        at 
org.apache.shardingsphere.sharding.route.engine.ShardingSQLRouter.createRouteContext(ShardingSQLRouter.java:57)
 ~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
        at 
org.apache.shardingsphere.sharding.route.engine.ShardingSQLRouter.createRouteContext(ShardingSQLRouter.java:44)
 ~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
        at 
org.apache.shardingsphere.infra.route.engine.impl.PartialSQLRouteExecutor.route(PartialSQLRouteExecutor.java:73)
 ~[shardingsphere-infra-route-5.1.1.jar:5.1.1]
        at 
org.apache.shardingsphere.infra.route.engine.SQLRouteEngine.route(SQLRouteEngine.java:53)
 ~[shardingsphere-infra-route-5.1.1.jar:5.1.1]
        at 
org.apache.shardingsphere.infra.context.kernel.KernelProcessor.route(KernelProcessor.java:54)
 ~[shardingsphere-infra-context-5.1.1.jar:5.1.1]
        at 
org.apache.shardingsphere.infra.context.kernel.KernelProcessor.generateExecutionContext(KernelProcessor.java:46)
 ~[shardingsphere-infra-context-5.1.1.jar:5.1.1]
        at 
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.createExecutionContext(ShardingSpherePreparedStatement.java:470)
 ~[shardingsphere-jdbc-core-5.1.1.jar:5.1.1]
        at 
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.execute(ShardingSpherePreparedStatement.java:364)
 ~[shardingsphere-jdbc-core-5.1.1.jar:5.1.1]
        at 
org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)
 ~[mybatis-3.5.3.jar:3.5.3]
        at 
org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
 ~[mybatis-3.5.3.jar:3.5.3]
        at 
com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doUpdate(MybatisSimpleExecutor.java:54)
 ~[mybatis-plus-core-3.3.1.jar:3.3.1]
        at 
org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) 
~[mybatis-3.5.3.jar:3.5.3]
        at 
com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.update(MybatisCachingExecutor.java:83)
 ~[mybatis-plus-core-3.3.1.jar:3.3.1]
        at 
org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
 ~[mybatis-3.5.3.jar:3.5.3]
        at 
org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)
 ~[mybatis-3.5.3.jar:3.5.3]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.8.0_191]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[na:1.8.0_191]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.8.0_191]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_191]
        at 
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
 ~[mybatis-spring-2.0.3.jar:2.0.3]
        at com.sun.proxy.$Proxy204.insert(Unknown Source) ~[na:na]
        at 
org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:271) 
~[mybatis-spring-2.0.3.jar:2.0.3]
        at 
com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:60)
 ~[mybatis-plus-core-3.3.1.jar:3.3.1]
        at 
com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:96)
 ~[mybatis-plus-core-3.3.1.jar:3.3.1]
        at com.sun.proxy.$Proxy205.insertOrder(Unknown Source) ~[na:na]
        at 
com.ehl.sharding.service.impl.HssHistoryServiceImpl.insertOrder(HssHistoryServiceImpl.java:20)
 ~[classes/:na]
        at 
com.ehl.sharding.controller.ShardingController.getData(ShardingController.java:26)
 ~[classes/:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.8.0_191]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[na:1.8.0_191]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.8.0_191]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_191]
        at 
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
 ~[spring-web-5.3.22.jar:5.3.22]
        at 
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
 ~[spring-web-5.3.22.jar:5.3.22]
        at 
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
 ~[spring-webmvc-5.3.22.jar:5.3.22]
        at 
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
 ~[spring-webmvc-5.3.22.jar:5.3.22]
        at 
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
 ~[spring-webmvc-5.3.22.jar:5.3.22]
        at 
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
 ~[spring-webmvc-5.3.22.jar:5.3.22]
        at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1070)
 ~[spring-webmvc-5.3.22.jar:5.3.22]
        at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
 ~[spring-webmvc-5.3.22.jar:5.3.22]
        at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
 ~[spring-webmvc-5.3.22.jar:5.3.22]
        at 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
 ~[spring-webmvc-5.3.22.jar:5.3.22]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) 
~[tomcat-embed-core-9.0.65.jar:4.0.FR]
        at 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
 ~[spring-webmvc-5.3.22.jar:5.3.22]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) 
~[tomcat-embed-core-9.0.65.jar:4.0.FR]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
 ~[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
 ~[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 
~[tomcat-embed-websocket-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
 ~[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
 ~[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
 ~[spring-web-5.3.22.jar:5.3.22]
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
 ~[spring-web-5.3.22.jar:5.3.22]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
 ~[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
 ~[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
 ~[spring-web-5.3.22.jar:5.3.22]
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
 ~[spring-web-5.3.22.jar:5.3.22]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
 ~[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
 ~[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
 ~[spring-web-5.3.22.jar:5.3.22]
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
 ~[spring-web-5.3.22.jar:5.3.22]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
 ~[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
 ~[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
 ~[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
 [tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
 [tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) 
[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) 
[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
 [tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) 
[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) 
[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
 [tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
 [tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789)
 [tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
[tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
 [tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
 [tomcat-embed-core-9.0.65.jar:9.0.65]
        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 [tomcat-embed-core-9.0.65.jar:9.0.65]
        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_191]
   
   `server:
     port: 8888
   mybatis:
     mapper-locations: classpath*:/mapper/**/*.xml
     typeAliasesPackage: com.ehl.sharding.entity
     configuration:
       mapUnderscoreToCamelCase: true
     check-config-location: true
   spring:
     shardingsphere:
       enabled: true
       props:
         sql-show: true
       datasource:
         names: master
         master:
           type: ${spring.datasource.type}
           driver-class-name: ${spring.datasource.druid.driver-class-name}
           url: ${spring.datasource.druid.url}
           username: ${spring.datasource.druid.username}
           password: ${spring.datasource.druid.password}
       rules:
         sharding:
           tables:
             order_info:
               actual-data-nodes: 
master.order_info,master.order_info_$->{2022..2050}$->{(1..12).collect(i->i.toString().padLeft(2,'0'))}
               table-strategy:
                 standard:
                   sharding-column: create_time
                   sharding-algorithm-name: order-info-inline
           sharding-algorithms:
             order-info-inline:
               type: CLASS_BASED
               props:
                 strategy: standard
                 algorithmClassName: 
com.ehl.sharding.config.DateShardingAlgorithm
           binding-tables: order_info
           default-key-generate-strategy:
             column: order_id
             key-generator-name: id-key
           key-generators:
             id-key:
               type: SNOWFLAKE
     autoconfigure:
       exclude: 
com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
     datasource:
       type: com.alibaba.druid.pool.DruidDataSource
       druid:
         driver-class-name: com.mysql.cj.jdbc.Driver
         url: 
jdbc:mysql://10.150.36.9:3306/ehl_spdb?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
         username: root
         password: root
   `


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: 
[email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to