【8008】解决idea中JDBC写sql语句出现报错Unable to resolve table ‘表名‘?

【8008】解决idea中写sql语句出现报错Unable to resolve table ‘表名’?

问题背景:


昨天使用JDBC连接数据库中写sql语句,一直爆红,真服了,虽然能运行,但看着不舒服,能运行说明本身sql语句没有问题,那就是idea检测有问题(前段时间换了2021版本的),需要处理一下,查了一些资料总结一下!


在这里插入图片描述


解决方法:


方法1(加数据库名):idea自带解决方法:
库名.表名(您的规则我遵守,那就按照idea规定的sql写法去写表名):但是嘞,治标不治本,每次写sql语句,都要加库名,嘿嘿,看方法2。


在这里插入图片描述

在这里插入图片描述


方法2推荐)(修改检测等级):不是检测有问题吗,那就将idea的检测问题取消掉或者修改检测问题等级,根本问题上我们写的sql语句是一个字符串传过去,只要在mysql查询语句能够正确执行,不要这种检测也罢。
Settings(设置)–>Editor(编辑)–>Inspections(检查)–>搜索框内输入sql语句
–>Unresolved reference(取消勾选未解决例句,或者修改Severity严重检测等级为Warning)–>Apply(应用)–>OK(重启IDEA即可解决问题)


在这里插入图片描述


方法3:设置数据库范围为所有(如果你使用idea连接的数据库,可以来配置,但这脱离我出现问题的相关性,我并不是数据库连接出现了问题,但是对于想连接的是一种方法):
第一步:(添加连接对象为所有)
点击database中的MYSQL(双击11的那个地方)–>选中ALL schemas或者你去添加MYSQL的地方找到Schemas,选中ALL schemas。


在这里插入图片描述

在这里插入图片描述


第二步:(设置连接SQL方言)
Settings(设置)–>Language & Franework(语言与框架)–>SQL Dialects(SQL 方言)–>将Global SQL Dialect与Project SQL Dialect修改为mysql–>将path路径里的也改为mysql–>Apply(应用)–>OK。


在这里插入图片描述


第三步(修改解析范围为全部):Settings(设置)–>Language & Franework(语言与框架)–>File | Settings | Languages & Frameworks | SQL Resolution Scopes(SQL 解析范围)–>将Project mapping(项目映射)修改为选中All Data Sources–>将path路径里的相应的文件也选中All Data Sources–>Apply(应用)–>OK(重启IDEA即可解决问题)。


在这里插入图片描述


在这里插入图片描述


当然你也可以通过idea自带的提示进行修改:


第三步(修改解析范围为全部):鼠标放在报错处,点击More actives–>点击Go to SQL Resolution Scopes–>点击Project mapping–>选中All Data Sources–>将path路径里的相应的文件也选中All Data Sources–>OK;


在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


方法4:(将表添加到数据源)
鼠标放在报错处,点击More actives–>点击Add table to data source–>点击MYSQL–>选中Open in editor(开放编辑器)–>Create all objects(创建所有对象)–>To Editor(执行编辑)。


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


方法3:改变当前idea的语言检测级别为仅仅语法检测:

因为你知道为啥报错了,那我把当前也页面的检测级别改为语法级别,看你还报错,哼!对了,以前那个数据库检测级别也是这么做,你先运行,确认解决没错,再进行修改就稳了,至于你说为啥要改:其实你点进来就说明:你对红色感叹号过敏!


在这里插入图片描述


原因分析:


1.问题产生的根本原因是idea找不到该表的数据库是谁的,是idea检测sql语句的问题,和你写的sql语句对不对其实没关系啦,采用方法1其实是屈服方法,毕竟用了人家的软件,遵守人家规则也没错,不服的话就方法二,
2.方法二是我推荐使用的,直接改了软件检测语句的等级,简单直截了当,觉得这个报错也不是合理啊,我的需求没有让你检测这个SQL字符串的内容,毕竟报不报错为了还是更方便写代码的(不需要你检查sql语句);我同桌说这是掩耳盗铃的方法,掩耳盗铃就掩耳盗铃了,我不需要这种检测,真是的,哼!如果以后遇到其他看着不爽的提示(当然对项目没有什么影响的话),这个方法很好用,谁让我对红色感叹号,敏感呢,我想大部分人都接受不了,带着红色感叹号的项目吧!
3.仅用方法2我的JDBC连接数据库中的不需要检测sql问题就得到解决了,但是有些时候问题出在需要连接数据库上,方法3的修改方法和idea连接数据库相关,这个时候你已经默认数据库是检测你的sql语句,所以修改数据库的检测范围和检测对象是理所当然的事情;
4.又或者方法四你将表添加到所有对象中,idea就不用找了,所有的数据库默认都有,也不会报错,嘿嘿,不建议使用,大量尝试idea编译找到的方法。
5.根据具体情况合理使用,关于其他的方法以后再补充吧,目前遇到的问题是得到解决了,欢迎底下评论补充!(又回来了,方法五是后来学框架有遇到的解决方法)。

  • 19
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值