问题描述:
使用 EasyCode 或 MybatisX 等代码自动生成插件将数据库的表映射成 Java 实体类时需要 现在 Database 工具上连接数据库
有时通过默认设置(除数据库ip、账号密码外的配置)连接数据库后, Idea 会提示 Error encountered when performing Introspect schema xxx 的错误,
虽然不影响数据库连接,此时仍然能在 idea 上查询到表数据,但是在 database 中 点击表前的箭头时 无法打开表结构
此时如果尝试自动映射实体类,则会报 表信息配置不正确的错误
这是因为在连接数据库时的默认配置没有让 database 把数据库中的表结构随着表数据一起加载过来。
解决方法:
在 Idea 中的 database 选项卡中,选中连接的数据库,然后点击 Data Source Properties 按钮 进入到数据库连接配置
在 Options 标签下,将 Introspect using JDBC metadata 选项勾上,表示连接数据库时将该数据库的表结构一起加载进 idea,
在 Schemas 标签下选择需要加载表结构的库, All Schemas 表示该数据库中的所有库都进行表结构加载(在 勾选 Introspect using JDBC metadata 选项 的前提下,因为我对这个理解不是很深,这个解释不是这些功能的真实原理,只是从结果上看是这个效果)
完成以上配置后点击 OK ,然后选中该数据库点击 Synchronize 按钮,以刚刚修改后的配置重新同步数据库
加载完成后表结构就随着数据一起加载进来了
此时也就可以自动映射实体类了