Eclipse Hibernate.cfg.xml 正在从 MySQL 链接 "sys" 数据库

Eclipse Hibernate.cfg.xml is linking "sys" database from MySQL

当我使用 Hibernate 连接到 MySQL 数据库时,bookstoredb,在 Eclipse 中,连接到 MySQL sys 数据库也出现了!

我正在使用以下内容:

注意:这是一个本地桌面项目,我正在完成一个教程。我不会将 root/admin 与 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 不应该只连接到 bookstoredb?为什么“sys”也在连接?

当使用该工具将数据库 table 逆向工程为 java 类 时,这会成为一个更大的问题。我不仅得到 bookstoredb tables 作为 java 类 而且 sys 中的每个 table 数据库也是如此。而且有很多,我相信人们都知道。

如何取消link sys 数据库?或者设置一些东西,让我一开始就不会 link?

我猜 sys 是您 MySQL workbench.

中的默认架构

转到您的 Mysql workbench 并删除 schema/because 它正在从您的本地服务器导入所有模式。

自定义:- 打开您的工作区(eclipse(屏幕顶部的“运行”选项卡-> 休眠代码生成)-> 转到休眠代码生成(-> 单击主-> revenge.xml->select新建->select文件夹->配置table过滤器->(1)select您要select的数据库->导入所有table-> 应用 -> 运行 .

现在您可以在 select 编辑的位置看到所有 table。 如果您想要客户出口,您也可以在上述 (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>