Mysql 无法建立JDBC连接-没有有效的解决方案:/

Mysql 无法建立JDBC连接-没有有效的解决方案:/,mysql,spring,hibernate,jpa,jdbc,Mysql,Spring,Hibernate,Jpa,Jdbc,我对Maven/Spring项目有问题。我正在尝试从MySQL工作台应用数据库,但没有成功 这是我的档案: persistence.xml <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation

我对Maven/Spring项目有问题。我正在尝试从MySQL工作台应用数据库,但没有成功

这是我的档案:

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="shakira" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

    <properties>

        <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="myPass" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql//localhost:3306/shakira" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
        <property name="hibernate.hbm2ddl.auto" value="create" />

    </properties>
</persistence-unit>
<project xmlns="http://maven.apache.org/POM/4.0.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.3 http://maven.apache.org/xsd/maven-4.0.3.xsd">
    <modelVersion>4.0.3</modelVersion>
    <groupId>com.packt</groupId>
    <artifactId>webstore</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.0.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>3.1.4.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-asm</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>3.1.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>3.1.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>4.0.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.10</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.3.1.Final</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.1.Final</version>
        </dependency>









    </dependencies>

    <resources>


        <resource>
            <directory>src/main/resources/META-INF</directory>
            <targetPath>META-INF</targetPath>
            <includes>
                <include>persistence.xml</include>
            </includes>
        </resource>
    </resources>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
</project>
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="shakira" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

    <properties>

        <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="myPass" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql//localhost:3306/shakira" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
        <property name="hibernate.hbm2ddl.auto" value="create" />

    </properties>
</persistence-unit>
<project xmlns="http://maven.apache.org/POM/4.0.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.3 http://maven.apache.org/xsd/maven-4.0.3.xsd">
    <modelVersion>4.0.3</modelVersion>
    <groupId>com.packt</groupId>
    <artifactId>webstore</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.0.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>3.1.4.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-asm</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>3.1.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>3.1.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>4.0.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.10</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.3.1.Final</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.1.Final</version>
        </dependency>









    </dependencies>

    <resources>


        <resource>
            <directory>src/main/resources/META-INF</directory>
            <targetPath>META-INF</targetPath>
            <includes>
                <include>persistence.xml</include>
            </includes>
        </resource>
    </resources>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
</project>
我找到了一些解决办法,但没有一个奏效。以下是我尝试过的内容列表:

  • 将提供程序更改为“ejb”
  • 更改所有hibernate依赖项的版本
  • 将端口从3306更改为8888
  • 关闭防火墙
  • 使用注释跳过网络行更改my.ini文件
  • 我还将地址放在了internet浏览器中,收到了一个包含以下内容的文件:

      N   
      5.7.17-log #   ;#80&X ˙÷! ˙          IY
      me)q^* mysql_native_password !  ˙„#08S01Got packets out of order
    
  • 也许这就是线索

    提前感谢您的帮助

    更新 我可能通过添加hibernate.properties而不是persistence.xml来解决这个问题(我已经删除了标签中persistence.xml的所有标签)

    这是文件hibernate.properties

    hibernate.connection.autocommit=true
    
    
    hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
    hibernate.hbm2ddl.auto=create
    hibernate.connection.driver_class=com.mysql.jdbc.Driver
    hibernate.connection.url= jdbc:mysql://localhost:3306/shakira
    hibernate.connection.username=root
    hibernate.connection.password=szczypi)rek13
    hibernate.connection.pool_size=2
    

    尝试使用
    HibernatePersistenceProvider
    创建持久化单元:

    org.hibernate.jpa.HibernatePersistenceProvider
    ...
    PersistenceProvider provider = new HibernatePersistenceProvider();
    entityManagerFactory = provider.createEntityManagerFactory(
       "shakira", null);
    
    另一方面,第二个参数是一个
    属性映射
    ,您希望覆盖或添加到
    persistence.xml
    中定义的属性映射之上。在您的情况下,只需传递
    null
    值即可

    更新

    另一件您可以考虑的是在提交之前添加<代码> FrHuSH()/代码>:

    entityManager.getTransaction().begin();
    entityManager.persist( product );
    entityManager.flush();
    entityManager.getTransaction().commit();
    System.out.println("successfull");
    entityManager.close();
    

    尝试使用
    HibernatePersistenceProvider
    创建持久化单元:

    org.hibernate.jpa.HibernatePersistenceProvider
    ...
    PersistenceProvider provider = new HibernatePersistenceProvider();
    entityManagerFactory = provider.createEntityManagerFactory(
       "shakira", null);
    
    另一方面,第二个参数是一个
    属性映射
    ,您希望覆盖或添加到
    persistence.xml
    中定义的属性映射之上。在您的情况下,只需传递
    null
    值即可

    更新

    另一件您可以考虑的是在提交之前添加<代码> FrHuSH()/代码>:

    entityManager.getTransaction().begin();
    entityManager.persist( product );
    entityManager.flush();
    entityManager.getTransaction().commit();
    System.out.println("successfull");
    entityManager.close();
    

    非常感谢您,它帮助解决了提供商的问题。不幸的是,连接仍然存在问题。仍然写入了一个错误:org.hibernate.service.spi.ServiceException:无法创建请求的服务,原因是:org.hibernate.HibernateException:无法建立JDBC连接[JDBC:mysql//localhost:3306/shakira]在使用flush()添加该行后,错误:“提交事务时出错”-已经消失,但是这个“isValid调用期间意外异常”仍然存在问题。我已经搜索了一些解决方案,但主要是人们说它是由错误版本的hibernate validator引起的。我尝试了新的和旧的版本,但没有任何帮助。非常感谢您,它帮助解决了提供商的问题。不幸的是,连接仍然存在问题。仍然写入了一个错误:org.hibernate.service.spi.ServiceException:无法创建请求的服务,原因是:org.hibernate.HibernateException:无法建立JDBC连接[JDBC:mysql//localhost:3306/shakira]在使用flush()添加该行后,错误:“提交事务时出错”-已经消失,但是这个“isValid调用期间意外异常”仍然存在问题。我已经搜索了一些解决方案,但主要是人们说它是由错误版本的hibernate validator引起的。我尝试了新的和旧的版本,但没有任何帮助。