Sharding-jdbc报错:Missing the data source name:‘m0‘解决方案
异常描述
### 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启动失败及运行时常见错误总结
本文总结了Spring Cloud Alibaba Sentinel实际使用中的常见问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2025-12-12
SpringBoot 创建web项目并部署到外部Tomcat
本篇文章主要介绍了SpringBoot 创建web项目并部署到外部Tomcat,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-06-06
Spring Boot多数据源事务@DSTransactional的使用详解
本文主要介绍了Spring Boot多数据源事务@DSTransactional的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-06-06
k8s+springboot+CronJob定时任务部署实现
本文主要介绍了k8s+springboot+CronJob定时任务部署实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-07-07


最新评论