mybaits plus demo Table “USER“ not found 可能原因及其解决办法

mybaits plus demo Table “USER“ not found 可能原因及其解决办法,第1张

mybaits plus demo Table “USER“ not found 可能原因及其解决办法

mybaits demo Table "USER" not found 可能原因及其解决办法

mybaits demo

原因表现特征解决办法解决过程总结原因

mybaits demo 原因

mybaits 的demo使用H2数据库,并且使用脚本在spring 启动时创建 table,插入数据,然后再在测试类里查找数据。这时候测试不通过报错提示 “Table “USER” not found”,可能的原因——创建数据库的脚本没有执行

表现特征

测试提示 :Error querying database. Cause: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table “USERD” not found (this database is empty); SQL statement:

解决办法


在YML文件中加入这一项配置(spring2.x以上,其他版本自行搜索),确保脚本文件执行。

解决过程

我先写解决方法方便大家,再写探究过程为了自己记录。

    首先检查数据库创建脚本是否能够运行,复制到H2的网页版控制台里去运行,发现官方demo给的sql语句居然无法运行,会提示存在错误符号,可能是网页上复制过来的多了些什么看不到的东西。(未起效)检查SQL及其对应pojo的大小写问题(未起效)考虑H2数据库的存续性 参照 参考链接1 (未起效)我再仔细看了一下报错位置提示,是在测试类query 查询的时候出错,于是我思考,建表脚本如果非正常执行,在插入数据的时候就应该提示错误才对。所以运行可以分为2段,1.脚本执行,2.测试查询,所以要么是脚本执行出错,要么是测试类查询代码有误。再回到抛出的异常,JdbcSQLSyntaxErrorException,指的是sql语法错误,即Mapper所用方法背后的sql运行错误。这里可以判断非方法本身错误,因为已经执行到sql了。所以可以确定是脚本执行出错。首先想到脚本是否运行,经过查询得到 mode 配置(生效)
总结原因

由于yml配置是官方demo里直接给出的,所以没有想到脚本文件配置路径后还需要确认运行。不能认为官方demo给出的配置是完全有效的。

参考文章:
Springboot 配置H2数据库
脚本文件执行

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5703723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存