Sharding-jdbc報(bào)錯(cuò):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 實(shí)體屬性時(shí),提示Missing the data source name: 'm0'
造成原因是由于userId的屬性值,我使用的是隨機(jī)函數(shù)生成的Long 值進(jìn)行填充,導(dǎo)致sharding-jdbc 路由引擎執(zhí)行分析時(shí)與自己定義的數(shù)據(jù)庫規(guī)則計(jì)算值異常導(dǎo)致輸出了一個(gè)不存在的數(shù)據(jù)源。
調(diào)整后的插入功能代碼:
@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 "批量新增成功"; }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用SpringBoot實(shí)現(xiàn)微服務(wù)超時(shí)重試模式的示例
這篇文章主要介紹了使用SpringBoot實(shí)現(xiàn)微服務(wù)超時(shí)重試模式的示例,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下2020-11-11Java多線程編程中使用Condition類操作鎖的方法詳解
Condition是java.util.concurrent.locks包下的類,提供了對(duì)線程鎖的更精細(xì)的控制方法,下面我們就來看一下Java多線程編程中使用Condition類操作鎖的方法詳解2016-07-07mybatis實(shí)現(xiàn)對(duì)數(shù)據(jù)的增刪查改實(shí)例詳解
這篇文章主要介紹了mybatis實(shí)現(xiàn)對(duì)數(shù)據(jù)的增刪查改實(shí)例詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07Springboot如何獲取配置文件application.yml中自定義的變量并使用
這篇文章主要介紹了Springboot中獲取配置文件(application.yml)中自定義的變量并使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Java關(guān)鍵字final的實(shí)現(xiàn)原理分析
這篇文章主要介紹了Java關(guān)鍵字final的實(shí)現(xiàn)原理分析,在JDK8之前,如果在匿名內(nèi)部類中需要訪問局部變量,那么這個(gè)局部變量一定是final修飾的,但final關(guān)鍵字可以省略,需要的朋友可以參考下2024-01-01Spring實(shí)戰(zhàn)之使用注解實(shí)現(xiàn)聲明式事務(wù)操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之使用注解實(shí)現(xiàn)聲明式事務(wù)操作,結(jié)合實(shí)例形式詳細(xì)分析了spring使用注解實(shí)現(xiàn)聲明式事務(wù)相關(guān)配置、接口實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2020-01-01SpringBoot集成H2內(nèi)存數(shù)據(jù)庫的方法
H2是Thomas Mueller提供的一個(gè)開源的、純java實(shí)現(xiàn)的關(guān)系數(shù)據(jù)庫。本文主要介紹了SpringBoot集成H2內(nèi)存數(shù)據(jù)庫,具有一定的參考價(jià)值,感興趣的可以了解一下2021-09-09Java Http多次請(qǐng)求復(fù)用同一連接示例詳解
這篇文章主要為大家介紹了Java Http多次請(qǐng)求復(fù)用同一連接示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10