java - org.hibernate.exception.JDBCConnectionException : Unable to open JDBC Connection for DDL execution

标签 java mysql hibernate

我正在尝试使用 hibernate 在 MySQL 数据库中创建表,但遇到问题“无法打开 JDBC 连接以执行 DDL”。我输入了有效的连接 URL 和所需的 jar 文件,但无法创建与数据库的连接。 我搜索了许多可用的解决方案,但没有一个对我有用。请告诉我我在这里做错了什么。

hibernate 版本:hibernate-core-5.4.12.Final

MySQL 连接器:8.0.17

DBconn.java

public class Dbconn {

static Connection con=null;
public static Connection connect() throws ClassNotFoundException, SQLException
{
    Class.forName("com.mysql.jdbc.Driver");
    con=DriverManager.getConnection("jdbc:mysql://localhost:3306/maxigodb","root","root");
        //System.out.println("db connected");
    return con;

}
}

HbConnection.java

public class HbConnection {

static Session ses=null;
public static Session getSession() 
{
    StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();  

    Metadata meta = new MetadataSources(ssr).getMetadataBuilder().build();  

    SessionFactory factory = meta.getSessionFactoryBuilder().build();  
    ses = factory.openSession();  


    return ses;
}
}

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>

    "-//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.url">jdbc:mysql://localhost:3306/maxigodb</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">root</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>

    <property name="hibernate.show_sql">true</property>
    <property name="hbm2ddl.auto">update</property>

    <mapping class="com.maxico.pojo.Login_data"/>
    <mapping class="com.maxico.pojo.Agent_data"/>
    <mapping class="com.maxico.pojo.Hotel_data"/>
    <mapping class="com.maxico.pojo.HotelBooking_Details"/>

</session-factory>

控制台错误

    WARN: HHH030006: Exception occurred when closing the Proxool pool
java.lang.NullPointerException
at org.hibernate.proxool.internal.ProxoolConnectionProvider.stop(ProxoolConnectionProvider.java:233)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.stopService(AbstractServiceRegistryImpl.java:390)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.destroy(AbstractServiceRegistryImpl.java:373)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.destroy(StandardServiceRegistryImpl.java:129)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.deRegisterChild(AbstractServiceRegistryImpl.java:423)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:468)
at com.maxico.test.HbConnection.getSession(HbConnection.java:20)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:303)
Feb 27, 2020 12:07:39 PM org.hibernate.service.internal.AbstractServiceRegistryImpl stopService

INFO: HHH000369: Error stopping service [class org.hibernate.proxool.internal.ProxoolConnectionProvider]
org.hibernate.HibernateException: HHH030006: Exception occurred when closing the Proxool pool
at org.hibernate.proxool.internal.ProxoolConnectionProvider.stop(ProxoolConnectionProvider.java:241)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.stopService(AbstractServiceRegistryImpl.java:390)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.destroy(AbstractServiceRegistryImpl.java:373)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.destroy(StandardServiceRegistryImpl.java:129)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.deRegisterChild(AbstractServiceRegistryImpl.java:423)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:468)
at com.maxico.test.HbConnection.getSession(HbConnection.java:20)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:303)

Caused by: java.lang.NullPointerException
at org.hibernate.proxool.internal.ProxoolConnectionProvider.stop(ProxoolConnectionProvider.java:233)
... 39 more

Feb 27, 2020 12:07:39 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/Maxico] threw exception [An exception occurred processing [index.jsp] at line [182]

181:      Session ses= null;
182:      ses= HbConnection.getSession(); 
183:      System.out.println("Email:" +user);
184:      try {
185:      


Stacktrace:] with root cause
java.sql.SQLException: The url cannot be null
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:660)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:251)
at org.hibernate.proxool.internal.ProxoolConnectionProvider.getConnection(ProxoolConnectionProvider.java:69)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180)
at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:43)
at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.getTablesInformation(DatabaseInformationImpl.java:120)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)

JAR 文件

enter image description here

最佳答案

我解决了这个问题...

出现这个问题是因为我添加了两个jar文件hibernate-proxool-5.4.12.Finalproxool-0.8.3。 我删除了 hibernate-proxool-5.4.12.Final,之后我就能够建立与数据库的连接。

关于java - org.hibernate.exception.JDBCConnectionException : Unable to open JDBC Connection for DDL execution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60427768/

相关文章:

java - Websphere 8.0 和 Java 1.7

mysql - SQL 错误 - 引用表中没有主键或候选键

java - SQL 语句转换为 hibernate 标准(具有 count 子句)

java - JSF - 变量中的托管 bean?

java - 如何在 Java 中格式化 Oracle 日期和时间戳类型值?

java - 使用 IText 库进行 PDF 签名

java - 两个 Java 日期具有不同的格式

Mysql 选择所有与字符串中的数字匹配的内容

php - 从帮助中选择 *

hibernate - 无法使用 Spring-Boot 创建多个数据源