当我使用Hibernate连接到MySQL数据库bookstoredb时,也会显示到MySQL sys数据库的连接!

我使用的方法如下:
(desktop)
注:这是一个本地桌面项目,我正在通过一个教程。我将不会使用根/管理与MySQL的道路上。
以下是完整的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是不是应该只连接到书店数据库呢?为什么"sys“也是连接的?
当使用该工具将数据库表反向工程成java类时,这就更成问题了。我不仅获得了bookstoredb表作为java类,而且还得到了sys数据库中的每个表。他们有很多,我敢肯定,大家都知道。
如何解除sys数据库的链接?或者把事情安排好让我从一开始就不链接到它?
发布于 2021-03-13 05:16:46
我猜sys是MySQL工作台中的默认模式。
转到Mysql工作台并删除架构/因为它正在从本地服务器导入所有模式。
或
自定义:-打开您的工作区(eclipse(屏幕顶部的“Run”选项卡) -> hibernate代码生成) ->转到hibernate代码生成( ->单击main-> Gregge.xml ->选择新->选择文件夹->配置表过滤器->(1)选择要选择的数据库->导入所有表->应用->运行。
现在,您可以看到所选位置中的所有表。如果您想要客户导出,您也可以在(1)步骤之后这样做。
发布于 2021-05-13 08:49:46
对于那些有类似问题的人来说。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>https://stackoverflow.com/questions/63444628
复制相似问题