java - 如何设置 Hibernate 配置属性以使用 Fabric 驱动程序连接到 Mysql

标签 java mysql sql hibernate mysql-fabric

我试图让一些旧代码工作,为 Mysql 数据库中的 hibernate 配置创建一些表,但代码引用了我不再拥有的数据源配置,我只想将其作为独立 Java 运行(不在 Tomcat 容器内)所以我对 Hibernate 配置做了一些更改。

我的 pom 现在包括

<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.35</version>
    </dependency>

我的代码是

  public static  Configuration setupDatabase()
{
    Configuration cfg = new Configuration()
            .setProperty(Environment.URL,"jdbc:mysql:songkong")
            .setProperty(Environment.DRIVER,"com.mysql.fabric.jdbc.FabricMySQLDriver")
            .setProperty(Environment.DIALECT, "org.hibernate.dialect.MySQL5Dialect")
            .setProperty("hibernate.show_sql", "true")
            .setProperty("hibernate.connection.username","dbuser")
            .setProperty("hibernate.connection.username", "dbpassword");;
    addEntitiesToConfig(cfg);
    cfg.setProperty(Environment.HBM2DDL_AUTO, "create-drop");
    return cfg;
}

public static void main(String[] args)
{
    Configuration cfg = setupDatabase();
    new SchemaExport(cfg).create(false,true);
}

目前的问题是找不到驱动程序。

java.sql.SQLException: No suitable driver found for jdbc:mysql:songkong
        at java.sql.DriverManager.getConnection(DriverManager.java:602)
        at java.sql.DriverManager.getConnection(DriverManager.java:154)
        at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:173)
        at org.hibernate.tool.hbm2ddl.ManagedProviderConnectionHelper.prepare(ManagedProviderConnectionHelper.java:55)
        at org.hibernate.tool.hbm2ddl.DatabaseExporter.<init>(DatabaseExporter.java:52)
        at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:368)
        at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
        at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
        at com.jthink.songkong.appserverdb.util.Db.main(Db.java:143)

Fabric 驱动程序位于 jar 中,但我不确定是否应该使用此驱动程序,以及是否正确设置了 Environment.DRIVER 行来引用它。我不认为我以前使用过这个驱动程序(几年前),但它是我在 Maven Central 中找到的唯一一个。

(我的数据库名为ongong,我可以从命令行正确更正它,我在代码摘录中没有显示真实的用户名和密码)

最佳答案

刚刚注意到非结构驱动程序也在 jar 中,将 ENVIRONMENT.DRIVER 设置为此,并对 Environment.URL 进行一些修改修复了它。

 Configuration cfg = new Configuration()
                .setProperty(Environment.URL,"jdbc:mysql://localhost/songkong")
                .setProperty(Environment.DRIVER,"com.mysql.jdbc.Driver")
                .setProperty(Environment.DIALECT, "org.hibernate.dialect.MySQL5Dialect")
                .setProperty("hibernate.show_sql", "true")
                .setProperty("hibernate.connection.username","dbuser")
                .setProperty("hibernate.connection.password", "dbpassword");;

关于java - 如何设置 Hibernate 配置属性以使用 Fabric 驱动程序连接到 Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29830460/

相关文章:

使用 where 子句进行 mySQL 更新会引发主键错误

mysql - 检查MySQL数据库数据是否不存在

mysql - 在mysql中使用虚拟列

Java - 扫描仪导致循环运行两次

java - 浏览器不缓存资源( header 设置)

mysql - MySQL 和 ASP.NET MVC4 的级联删除

SQL 查询从不均匀的行返回结果

c# - 单击按钮后如何避免实例化变量?

java - 如何告诉 Jackson 将子元素设为顶级元素

java - 如何在 Java 中生成包含 N 个可能元素 (M > N) 的数组列表(长度均为 M)?