如何解决Eclipse Hibernate.cfg.xml从MySQL链接“ sys”数据库
当我使用Hibernate连接到MySQL数据库 bookstoredb 时,在Eclipse中,还显示了与MySQL sys 数据库的连接!
我正在使用以下内容:
- Ubuntu 18.04.5 LTS(台式机)
- 带有JBoss工具,Hibernate-Tools插件的Eclipse 2020-6(4.16.0)
- 用于x86_64上的Linux的MySQL Ver 8.0.21(MySQL社区服务器-GPL)
注意:这是一个本地桌面项目,我正在完成一个教程。在将来,我将不会在MySQL上使用root / admin。
以下是完整的hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">admin</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/bookstoredb?serverTimezone=UTC</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
</session-factory>
</hibernate-configuration>
我误会了,connection.url是否仅连接到 bookstoredb ?为什么“ sys”也要连接?
使用该工具将数据库表反向工程为Java类时,这甚至成为问题。我不仅将 bookstoredb 表作为java类,而且还将获得 sys 数据库中的每个表。而且我相信很多人都知道。
如何取消链接 sys 数据库?或进行设置,以便我不首先链接到它?
解决方法
我猜 sys 是您的 MySQL 工作台中的默认架构。
转到您的 Mysql 工作台并删除架构/因为它正在从您的本地服务器导入所有架构。
或
自定义:- 打开您的工作区(eclipse(屏幕顶部的“运行”选项卡-> 休眠代码生成)-> 转到休眠代码生成(-> 单击 main-> revenge.xml-> 选择新的 -> 选择文件夹->配置表过滤器->(1)选择要选择的数据库->导入所有表->应用->运行。
现在您可以看到所选位置中的所有表。 如果您想客户导出,您也可以在上述 (1) 步骤之后进行
,对于那些有类似问题的人。 Hibernate 工具逆向工程读取所有模式。因此指定数据库不起作用。所以你需要一个自定义的模式选择标签来指定你想要从哪个数据库进行逆向工程。这是通过创建一个 hibernate.reveng.xml
文件并添加类似这样的内容来完成的,其中 demo
是数据库的名称
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering SYSTEM "http://hibernate.org/dtd/hibernate-reverse-engineering-3.0.dtd">
<hibernate-reverse-engineering>
<schema-selection match-catalog="demo" match-schema=".*" match-table=".*"/>
</hibernate-reverse-engineering>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。