Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 问题:当';hibernate.方言';未设定_Java_Spring_Jdbc_Datasource - Fatal编程技术网

Java 问题:当';hibernate.方言';未设定

Java 问题:当';hibernate.方言';未设定,java,spring,jdbc,datasource,Java,Spring,Jdbc,Datasource,正在尝试通过数据源使用Microsoft驱动程序将spring代码连接到SQL Server数据库 应用程序上下文.xml: <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource"> <property name="driverClassName" value="${database.driverClassName}"/>

正在尝试通过数据源使用Microsoft驱动程序将spring代码连接到SQL Server数据库

应用程序上下文.xml:

  <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
    <property name="driverClassName" value="${database.driverClassName}"/>
    <property name="url" value="${database.url}"/>
    <property name="username" value="${database.username}"/>
    <property name="password" value="${database.password}"/>
</bean>
database.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
database.url=jdbc\:jtds\:sqlserver\://DB_ip:DB_Port/MyDB;instance=Some_Ins;integratedSecurity=true
database.username=
database.password=
错误

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
  ...
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1512)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
已编辑

Caused by: org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set
            at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:97)
            at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:67)
            at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:170)
            at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
          at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
            at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
            at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1797)
            at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1755)
            at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840)
            at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
            at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
            at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)
            ... 39 more

无法确定根本原因。

当我的应用程序无法连接到数据库时,我会遇到相同的异常。因此,即使URL错误,或者数据库名称错误,或者用户/密码组合无效,也会引发相同的异常


因此,我想您应该验证连接属性,但要小心设置所有内容,从db服务器url、端口、db名称、用户/密码开始。当我的应用程序无法连接到数据库时,我会遇到相同的异常。因此,即使URL错误,或者数据库名称错误,或者用户/密码组合无效,也会引发相同的异常


因此,我想您应该验证连接属性,但要注意将所有属性设置为正确的,从db服务器url、端口、db名称、用户/密码开始

database.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
database.url=jdbc\:jtds\:sqlserver\://DB_ip:DB_Port/MyDB;instance=Some_Ins;integratedSecurity=true
看起来您使用的是普通的sql server驱动程序,而不是jTDS驱动程序,因此我至少希望URL没有
:jTDS
部分。在url中似乎也有不必要的斜杠。将
数据库.url
更改为以下内容

database.url=jdbc:sqlserver://DB_ip:DB_Port/MyDB;instance=Some_Ins;integratedSecurity=true

这应该是普通SQL Server驱动程序的正确URL。

在属性中,您有以下两个属性

database.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
database.url=jdbc\:jtds\:sqlserver\://DB_ip:DB_Port/MyDB;instance=Some_Ins;integratedSecurity=true
看起来您使用的是普通的sql server驱动程序,而不是jTDS驱动程序,因此我至少希望URL没有
:jTDS
部分。在url中似乎也有不必要的斜杠。将
数据库.url
更改为以下内容

database.url=jdbc:sqlserver://DB_ip:DB_Port/MyDB;instance=Some_Ins;integratedSecurity=true

这应该是普通SQL Server驱动程序的正确URL。

为什么要进行向下投票。请解释一下,如果遗漏了任何内容,可以添加。您使用的是哪种dbms?您实际读取了堆栈跟踪吗?您正在使用hibernate,但尚未告诉hibernate方言是什么。。。因此,它尝试使用连接,但显然无法连接。您尝试使用属性,但要这样做,您需要添加一个
PropertyPlaceHolderConfigure
或使用
,否则您的
${..}
不会被替换。由于您没有发布所有必需的内容,而只是发布了一些片段,所以无法判断到底是什么错误。@M.Deinum我已经准备好了,替换工作正常。。而且我已经手动将值与相应的属性持有者放置在一起。仍然面临同样的问题。请确保您的用户名/密码确实正确,并且确保您的URL是正确的。还有,URL中所有的斜杠是什么,你不需要这些。。。接下来,您的URL似乎是错误的,如果您使用的是纯sql server的东西,而不是jdts的东西,那么我希望URL的开头是
jdbc:sqlserver
,而不是您现在拥有的。为什么要向下投票..请解释一下,如果缺少任何东西,可以添加。您使用的是哪种dbms?您实际阅读了堆栈跟踪吗?您正在使用hibernate,但尚未告诉hibernate方言是什么。。。因此,它尝试使用连接,但显然无法连接。您尝试使用属性,但要这样做,您需要添加一个
PropertyPlaceHolderConfigure
或使用
,否则您的
${..}
不会被替换。由于您没有发布所有必需的内容,而只是发布了一些片段,所以无法判断到底是什么错误。@M.Deinum我已经准备好了,替换工作正常。。而且我已经手动将值与相应的属性持有者放置在一起。仍然面临同样的问题。请确保您的用户名/密码确实正确,并且确保您的URL是正确的。还有,URL中所有的斜杠是什么,你不需要这些。。。接下来,您的URL似乎是错误的,如果您使用的是普通的sql server内容,而不是jdts内容,那么我希望URL的开头是
jdbc:sqlserver
,而不是您现在的URL。URL是正确的,经过验证并尝试了windows身份验证和uname以及密码(两个场景中的错误相同)。我遗漏了一些内容-我收到的异常是“hibernate.dialogue未设置时,对方言ResolutionInfo的访问不能为null”。我正在使用hibernate 4.3.11。但是我在hibernate源代码中找到了引发异常的确切位置——您也可以这样做。找到引发异常的位置,并在该区域进行一些调试,也许您会发现问题所在。这就是为什么我喜欢使用Hibernate+Spring的原因,因为它们是开源的,我可以在没有其他功能的情况下调试框架代码。另外,可能堆栈跟踪更长,您只将顶层异常+第一个原因放在-我想您错过了最后一个“原因”(应该是org.Hibernate.hibernateeexception的一个实例)URL是正确的,已验证并尝试了windows身份验证和uname以及密码(在两个场景中都是相同的错误)。我遗漏了一些内容-我收到的异常是“hibernate.Dialogue“未设置”时访问DialogResolutionInfo不能为null”。我正在使用hibernate 4.3.11。但是我在hibernate源代码中找到了引发异常的确切位置——您也可以这样做。找到引发异常的位置,并在该区域进行一些调试,也许您会发现问题所在。这就是为什么我喜欢使用Hibernate+Spring的原因,因为它们是开源的,我可以在没有其他功能的情况下调试框架代码。另外,可能堆栈跟踪更长,您只将顶层异常+第一个原因放在-我想您错过了最后一个“原因”(应该是org.Hibernate.hibernateeexception的一个实例)