先附上applicationContext.xml关于datasource的配置
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="hjy1984" />
</bean>
<!-- Hibernate配置 org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.form_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
</props>
</property>
新版的hibernate4.2+spring3.2+struts2.x在集成架构时会出现 java.sql.SQLException: Access denied for user 'sa'@'localhost' (using password: NO)
的错误,诡异的是配置的jdbc根本就没有用sa用户名,在低版本的hibernate和spring在集成是不会有相关问题的。我在百度,CSDN等网站搜索了相关问题,也有碰到该问题的,但都没有给出解决办法,我也根据搜素到的可能出现的相关问题都做了排查,比如写了java jdbc方法直接测试链接,排除设置导致的错误;通过对root做create等权限检查等,尝试了很多办法都不行,最后比较肯定的是配置的datasource被其他config覆盖了,于是我去看了下org.springframework.orm.hibernate4.LocalSessionFactoryBean的源码,发现可能与下面的hibernateProperties有关系,但也没找到解决办法。偶然一次我用360的搜索so.com搜索了一下相关问题,在http://stackoverflow.com/上找到了解决办法,原来是hibernate自带的jar内置的hibernte.properties默认会选择sa用户名,并将我们配置的dataSource覆盖了,只有在hibernateProperties下面再次配置jdbc的url,username和password才能生效。
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.form_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.connection.username">root</prop>
<prop key="hibernate.connection.password">hjy1984</prop>
<prop key="hibernate.connection.url">jdbc:mysql://localhost:3306/test</prop>
<prop key="hibernate.default_batch_fetch_size">30</prop>
</props>
</property>
分享到:
相关推荐
赠送jar包:dynamic-datasource-spring-boot-starter-3.4.1.jar; 赠送原API文档:dynamic-datasource-spring-boot-starter-3.4.1-javadoc.jar; 赠送源代码:dynamic-datasource-spring-boot-starter-3.4.1-sources...
赠送jar包:dynamic-datasource-spring-boot-starter-3.4.1.jar; 赠送原API文档:dynamic-datasource-spring-boot-starter-3.4.1-javadoc.jar; 赠送源代码:dynamic-datasource-spring-boot-starter-3.4.1-sources...
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 提示的是用户访问被拒绝,原因是密码不正确,但是我们明明配置的是正确的密码,原因就在yml中: spring: datasource: ...
Dynamic-Datasource (opens new window)- 基于 SpringBoot 的多数据源组件,功能强悍,支持 Seata 分布式事务。 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 支持数据库敏感配置信息 ...
赠送jar包:sentinel-datasource-extension-1.8.0.jar; 赠送原API文档:sentinel-datasource-extension-1.8.0-javadoc.jar; 赠送源代码:sentinel-datasource-extension-1.8.0-sources.jar; 赠送Maven依赖信息...
赠送jar包:sentinel-datasource-extension-1.8.0.jar; 赠送原API文档:sentinel-datasource-extension-1.8.0-javadoc.jar; 赠送源代码:sentinel-datasource-extension-1.8.0-sources.jar; 赠送Maven依赖信息...
sentinel-datasource-extension-file-pull.zip
dynamic-datasource-spring-boot-starter-3.2.0.jar
Dynamic-Datasource (opens new window)- 基于 SpringBoot 的多数据源组件,功能强悍,支持 Seata 分布式事务。 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 支持数据库敏感配置信息 ...
Dynamic datasource, multipl-SpringBoot-DynamicDataSource
多数据源调整和修改,支持数据源的切换等功能
sentinel-datasource-extension-1.4.0.jar
赠送jar包:spring-cloud-alibaba-sentinel-datasource-2021.1.jar; 赠送原API文档:spring-cloud-alibaba-sentinel-datasource-2021.1-javadoc.jar; 赠送源代码:spring-cloud-alibaba-sentinel-datasource-2021....
sentinel-datasource-extension-1.3.0-GA.jar
dynamic-datasource.zip
赠送jar包:spring-cloud-alibaba-sentinel-datasource-2021.1.jar; 赠送原API文档:spring-cloud-alibaba-sentinel-datasource-2021.1-javadoc.jar; 赠送源代码:spring-cloud-alibaba-sentinel-datasource-2021....
guns企业版多数据源配置,集成dynamic-datasource,同时支持mysql,oracle,支持多数据源数据分页
sentinel-datasource-nacos-1.3.0-GA.jar
springboot结合自定义注解整合动态数据源实现通过注解切换,事务回滚springboot结合自定义注解整合动态数据源实现通过注解切换,事务回滚springboot结合自定义注解整合动态数据源实现通过注解切换,事务回滚
一个基于springboot的快速集成多数据源的启动器简介dynamic-datasource-spring-boot-starter是一个基于springboot的快速集成多数据源的启动器。其支持Jdk 1.7 +,SpringBoot 1.4.x 1.5.x 2.xx。文件| 文献资料|特性...