我是靠谱客的博主 丰富书包,最近开发中收集的这篇文章主要介绍使用JPA persistence.xml报错:A ResourcePool could not acquire a resource from its primary factory or sour,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用JPA persistence.xml 配置时,报错:

Unable to acquire JDBC Connection

Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!

Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.

首先检查persistence.xml中url,driver,username,password的写法是否正确,我是直接把hibernate.cfg.xml下面的拷贝过来的,所以写错了,对比如下:

hibernate:

<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>

JPA:

<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/hibernate"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="123456"/>

注意driver_class 变为driver,username变为user,还有前缀也要变为 javax.persistence.jdbc,最后附上正确的persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
              http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"
             version="2.2">
    <!--transaction-type:事务类型-->
        <!--JTA:JAVA Transaction API-->
        <!--RESOURCE_LOCAL:本地代码事务-->
    <persistence-unit name="myJPAUnit" transaction-type="RESOURCE_LOCAL">
        <!--JPA提供商,可以不写-->
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <!--JPA注解的实体类位置,可以不写-->
        <class>domain.CstCustomer</class>
        <class>domain.CstLinkman</class>

        <!--以下只要把cfg.xml文件中的拷贝过来稍加改动即可-->
        <!--1.连接数据库的信息-->
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/hibernate"/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="123456"/>
            <!--2.hibernate可选配置-->
            <!--检测实体类的映射配置和数据库的表结构是否一致,如果不一致,更新表结构-->
            <property name="hbm2ddl.auto" value="update"/>
            <!--数据库方言-->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
            <!--是否显示hibernate生成的sql语句-->
            <property name="hibernate.show_sql" value="true"/>
            <!--是否使用格式化输出sql语句-->
            <property name="hibernate.format_sql" value="true"/>
            <!--3.设置hibernate的连接池提供商-->
            <property name="hibernate.connection.provider_class" value="org.hibernate.c3p0.internal.C3P0ConnectionProvider"/>

        </properties>
    </persistence-unit>
</persistence>

 

最后

以上就是丰富书包为你收集整理的使用JPA persistence.xml报错:A ResourcePool could not acquire a resource from its primary factory or sour的全部内容,希望文章能够帮你解决使用JPA persistence.xml报错:A ResourcePool could not acquire a resource from its primary factory or sour所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部