Springboot项目下mybatis报错:Invalid bound statement (not found)

搭建项目完成以后启动就报错:Invalid bound statement (not found),然后自己尝试各种办法,总结以下几点。

1.0首先排除这几点错误。

  1. 查看XML文件中,ID的名字和Dao接口中的方法名是否一致。
  2. XML中的命名空间是否填写正确,命名空间也就是Dao的路径名。例如:<mapper namespace="com.demo.springboot.dao.CityDao">

网上说,dao的类名要和xml的名字一样,我尝试了下,并不是这个问题。至少我这边没遇到的问题并不是因为名字不一样,而导致这样的异常报错。

1.1检查完以后还是报同样的错误,那我就想到是不是,项目没有找到xml
我马上在application.properties中增加了配置信息:mybatis.mapper-locations: classpath:com/demo/springboot/domain/mapper/*.xml,问题解决。还是找不到xml文件导致的。 注意不是com.demo.springboot.domain.mapper/*.xml

2.0重新启动项目,遇到了新的问题Could not create connection to database server,继续往下看到引起异常的原因。Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized
我马上在配置文件中修改了spring.datasource.url的属性,增加了serverTimezone=UTC。应该是本地电脑的时区和mysql服务器的时区问题。具体可以去看UTC,在这里插入代码片spring.datasource.url: jdbc:mysql://127.0.0.1:3306/demo?serverTimezone=UTC&useSSL=false&autoReconnect=true

重新启动项目,成功了。耗费了我两个小时的时间,springboot节省了大量配置,要不然我估计一天都搭建不起来。

另外遇到两个小问题
1,spring.datasource.driver-class-name: com.mysql.cj.jdbc.Driver。现在又改了。多了cj。
2,由于是mysql8所以,用maven引入依赖的时候,低版本会报一些莫名其妙的错误,尽量版本要跟数据库的版本要对应。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值