开发者

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

开发者 https://www.devze.com 2024-11-04 10:28 出处:网络 作者: 在奋斗的大道
目录异常描述异常造成原因总结异常描述 ### Error updating database.php  Cause: Java.lang.IllegalStateException: Missing the data source name: 'm0'### The error may exist in com/zzg/mapper/O
目录
  • 异常描述
  • 异常造成原因
  • 总结

异常描述

### Error updating database.php  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 cajavascriptuse

 

java.lang.IllegalStateException: no table route info

异常造成原因

@RequestMajavascriptpping(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 实体属性时http://www.devze.com,提示Missing the data source name: 'm0'

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

调整后的插入功能代码:

@RequestMapping(value = "/batcjavascripthInsert", 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 "批量新增成功";
	}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号