使用Hibernate和Jersey连接到MySql数据库

时间:2016-08-15 07:31:48

标签: java mysql hibernate jersey

我第一次尝试使用Jersey,在尝试在本地计算机上运行Jersey服务器时出现此异常:

  

线程“main”中的异常org.hibernate.HibernateException:当'hibernate.dialect'没有设置时,对DialectResolutionInfo的访问不能为空

这是我的hibernate.cfg.xml:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
   <session-factory>
        <property name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </property>
        <property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver </property>
        <!-- Assume test is the database name -->
        <property name="hibernate.connection.url"> jdbc:mysql://localhost/mydb </property>
        <property name="hibernate.connection.username"> root </property>
        <property name="hibernate.connection.password"> </property>
        <!-- List of XML mapping files -->
        <mapping class="annotations.Person"></mapping>       
    </session-factory>
</hibernate-configuration>

泽西岛的config.yml包含这一部分:

# Database settings.
database:
    # the name of the JDBC driver, mysql in our case
    driverClass: com.mysql.jdbc.Driver
    # the username
    user: root
    # the password
    password: 
    # the JDBC URL; the database is called DWGettingStarted
    url: jdbc:mysql://localhost:3306/mydb

如何修复此异常?

1 个答案:

答案 0 :(得分:0)

似乎config.yml文件中缺少一些信息。

添加以下内容解决了此问题:

# Database settings.
database:
    # the name of the JDBC driver, mysql in our case
    driverClass: com.mysql.jdbc.Driver
    # the username
    user: root
    # the password
    password: 
    # the JDBC URL; the database is called DWGettingStarted
    url: jdbc:mysql://localhost:3306/mydb
    # any properties specific to your JDBC driver:
    properties:
      charSet: UTF-8
      hibernate.dialect: org.hibernate.dialect.MySQLDialect

      # the maximum amount of time to wait on an empty pool before throwing an exception
      maxWaitForConnection: 1s

      # the SQL query to run when validating a connection's liveness
      validationQuery: "/* MyApplication Health Check */ SELECT 1"

      # the minimum number of connections to keep open
      minSize: 8

      # the maximum number of connections to keep open
      maxSize: 32

      # whether or not idle connections should be validated
      checkConnectionWhileIdle: false