在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ SpringBoot集成mbatis出現(xiàn)Invalid bound statem

SpringBoot集成mbatis出現(xiàn)Invalid bound statement (not found)的問題

mybatisapplication.yml 的具體配置如下所示:

mybatis:
  config-location: classpath:mybatis/mybatis-config.xml
  mapper-locations: classpath*:mybatis/mapper/mysql/**/**.xml
  type-aliases-package: com.dragonflyxd.lr.web.model.entity

在項(xiàng)目的入口 LrWebApplication 中也有添加掃描mapper文件的注解:

@MapperScan("com.dragonflyxd.lr.web.dal.**")

Dao層的代碼結(jié)構(gòu)截圖如下所示:

clipboard.png

mybatis-config文件的具體內(nèi)容如下:

clipboard.png

CategoryMapper的Mapper和xml的具體內(nèi)容如下所示:

clipboard.png

clipboard.png


調(diào)用 /category/test 接口的時(shí)候,出現(xiàn) "Invalid bound statement (not found): com.dragonflyxd.lr.web.dal.CategoryMapper.count" 的問題。

  • Mapper文件中的方法都已經(jīng)在xml中對(duì)應(yīng)。
  • xml文件的命名空間對(duì)應(yīng)的是Mapper的包路徑。
  • 項(xiàng)目啟動(dòng)后,Mapperxml文件能確定已經(jīng)被編譯。

    clipboard.png

回答
編輯回答
汐顏

后經(jīng)排查,發(fā)現(xiàn)是由于 xml 文件沒找到的原因。
因?yàn)槲以诠こ汤锝ǖ?mapper.mysql 是個(gè)文件夾的名字,而不是包名,不符合 mapper-locations: classpath*:mybatis/mapper/mysql/**/**.xml 。

另說明,在 IDEA 里,resources下的目錄,包名和文件名都可以使用 . ,見如下截圖:

clipboard.png

2017年11月25日 14:16
編輯回答
涼汐

在application.yml中修改:

mybatis:
  mapper-locations: classpath:mybatis/mapper/mysql/*.xml

其次:@MapperScan改為

@MapperScan("com.dragonflyxd.lr.web.dal")

報(bào)錯(cuò)信息是"Invalid bound statement (not found):com.dragonflyxd.lr.web.dal.CategoryMapper.count"無效的綁定聲明

預(yù)計(jì)問題出在CategoryMapper.count這個(gè)函數(shù)命名上,你試試把CategoryMapper中的count()方法改成getCount(),對(duì)應(yīng)的mapper.xml中的id也改成getCount()

2017年1月8日 02:35
編輯回答
維他命

在mapper的pojo上添加@Mapper注解,一個(gè)repository注解無法完成自動(dòng)裝配

2017年9月21日 20:19