这个问题需要谢谢某个热心的博主帮我解决的,所以写下这篇文章既是为了帮助也遇到了这个问题的朋友,也是为了做个记录
在此也分享一下之前我怀疑过的问题:
1.映射requesMapping url错误,我试过把控制类userdao方法注解掉是可以返回页面的(已排除)
映射验证:按住Crtl键+鼠标点击url(如果跳转进入了就是成功,没有反应那多半就是出问题啦)
2.pom文件中thymeleaf依赖注入问题(依赖注入问题只能一个个版本尝试了,因为新的依赖往往会存在未知的冲突问题,所以依赖包并不一定越新越好,新的依赖包有错可以向下调整版本)
3.pom指出配置文件的地址(已排除)因为我在pom文件中加入了配置文件的地址了
4.还有说是因为yml文件中内有加入映射路径的 我也加了(已排除)
5.注解用法错误,这个我也看过了但是不知道会不会出错(这个问题确实需要仔细检查)
6.没有在html文件中加入thymeleaf依赖这个我也加了(已排除)
7.还有说启动类没在根目录的 (已排除)
8.yml文件格式(排除)
9.rebuild项目(排除)(这个的作用好像是排除你的代码虽然正确了但是系统没有及时的更新数据)
10.resource文件没有加入classpath(这个resource文件是项目自动生成的应该可以排除)
首先这一次的错误在于我的application.yml文件出现了两个配置上的错误
问题一:首先是我的数据源中的配置出现了问题主要是因为我的数据库中查询的数据类型包含datatime类型,所以我们的url后面应该要加入serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
问题二:还有级数千万不要写错了spring前一定不能有空格,每一级在它的上一级前加两个空格
如果你加入了连接池的类型的话要在pom文件中注入依赖druid,没有的话你就不用写type了
spring:
datasource: #数据源配置
type: com.alibaba.druid.pool.DruidDataSource #连接池的类型
username: root
password: 123456
url: jdbc:mysql://localhost:3306/goods_market_db?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false #mysql8.0以上需要加入时区不然会连接不上
driver-class-name: com.mysql.cj.jdbc.Driver #数据库的驱动程序类 #如果是mysql5.*的版本 不需要加入cj!!!!!!
thymeleaf:
suffix: .html
然后是我的mybatis的配置写错了也就是上面犯的错误我把mapper_location写入了configuration内,但是你在yml文件中打configuration后的下拉选项列表中是没有mapper—location这个选项的也就说明mapper—location不应该写在 configuration内,你再尝试写入mybatis你可以在下拉列表中同时找到mapper—location和 configuration也就是说明他们应该是同级的。
但是我的错误不只是这个,还有就是mapper—location的映射写错了,服务器没能找到classpath:mybatis/mapper下的xml文件就会自动取dao包中查找xml当然是找不到的啦,
检测你的配置是否正确的方法:就是按住键盘的ctrl加上鼠标点击mapper-location如果可以跳转过去就说明你的配置成功了如果没能跳转过去就说明你的配置失败了,不信你也可以试试configuration下的map-underscore-to-camel-case它是可以跳转进入方法的。
mybatis:
mapper-locations: classpath:mybatis/mapper/*.xml
configuration:
map-underscore-to-camel-case: true #数据库中的下划线自动转化成驼峰 没有问题吧
这就是我这次项目出现的全部问题了!希望能帮到你