Sharding-jdbc报错:Missing the data source name:‘m0‘解决方案

 更新时间:2024年11月04日 08:49:31   作者:在奋斗的大道  
在使用MyBatis-plus进行数据操作时,新增Order实体属性后,出现了数据源缺失的提示错误,原因是因为userId属性值使用了随机函数生成的Long值,这与sharding-jdbc的路由规则计算不匹配,导致无法找到正确的数据源,通过调整userId生成逻辑

异常描述

### Error updating database.  Cause: java.lang.IllegalStateException: Missing the data source name: 'm0'
### The error may exist in com/zzg/mapper/OrderMapper.java (best guess)
### The error may involve com.zzg.mapper.OrderMapper.insert-Inline
### The error occurred while setting parameters
### Cause: java.lang.IllegalStateException: no table route info] with root cause
 
java.lang.IllegalStateException: no table route info

异常造成原因

@RequestMapping(value = "/batchInsert", method = { RequestMethod.GET })
	public Object batchInsert() {
	
		for (int i = 0; i < 10; i++) {
			Order order = new Order();
			order.setPrice(new BigDecimal(Math.random()));
			order.setUserId(new Random().nextLong());
			order.setStatus("0");
			orderService.save(order);
		}
		
		return "批量新增成功";
	}

使用MyBatis-plus 新增Order 实体属性时,提示Missing the data source name: 'm0'

造成原因是由于userId的属性值,我使用的是随机函数生成的Long 值进行填充,导致sharding-jdbc 路由引擎执行分析时与自己定义的数据库规则计算值异常导致输出了一个不存在的数据源。

调整后的插入功能代码:

@RequestMapping(value = "/batchInsert", method = { RequestMethod.GET })
	public Object batchInsert() {
		
		for (int i = 0; i < 10; i++) {
			Order order = new Order();
			order.setPrice(new BigDecimal(Math.random()));
			order.setUserId(Long.valueOf("" + i));
			order.setStatus("0");
			
			orderService.save(order);
		}
		

		return "批量新增成功";
	}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot整合Sentinel启动失败及运行时常见错误总结

    SpringBoot整合Sentinel启动失败及运行时常见错误总结

    本文总结了Spring Cloud Alibaba Sentinel实际使用中的常见问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-12-12
  • java内存模型jvm虚拟机简要分析

    java内存模型jvm虚拟机简要分析

    Java 内存模型的主要目的是定义程序中各种变量的访问规则, 关注在虚拟机中把变量值存储到内存和从内存中取出变量值这样的底层细节
    2021-09-09
  • SpringBoot 创建web项目并部署到外部Tomcat

    SpringBoot 创建web项目并部署到外部Tomcat

    本篇文章主要介绍了SpringBoot 创建web项目并部署到外部Tomcat,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 关于MyBatis中映射对象关系的举例

    关于MyBatis中映射对象关系的举例

    这篇文章主要介绍了关于MyBatis中映射对象关系的举例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Java Redis Redisson配置教程详解

    Java Redis Redisson配置教程详解

    这篇文章主要介绍了Java Redis Redisson配置教程,包括Session共享配置及其他Redisson的Config配置方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 通过实例了解java TransferQueue

    通过实例了解java TransferQueue

    这篇文章主要介绍了TransferQueue实例,下面小编和大家一起来学习一下
    2019-05-05
  • Java一维二维数组的使用方法详解(Arrays类方法)

    Java一维二维数组的使用方法详解(Arrays类方法)

    这篇文章主要给大家介绍了关于Java一维二维数组使用方法的相关资料,数组是相同类型元素的集合,可以通过索引访问元素,文章还讨论了数组的遍历、排序、查找等操作,并提供了相关示例代码,需要的朋友可以参考下
    2025-05-05
  • Spring Boot多数据源事务@DSTransactional的使用详解

    Spring Boot多数据源事务@DSTransactional的使用详解

    本文主要介绍了Spring Boot多数据源事务@DSTransactional的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • k8s+springboot+CronJob定时任务部署实现

    k8s+springboot+CronJob定时任务部署实现

    本文主要介绍了k8s+springboot+CronJob定时任务部署实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 图解JAVA中Spring Aop作用

    图解JAVA中Spring Aop作用

    这篇文章主要介绍了Java的Spring框架下的AOP的作用,需要的朋友可以参考
    2017-04-04

最新评论