s2sh集成dataSource配置无效的问题 -Access denied for user 'sa'@'localhost'

先附上applicationContext.xml关于datasource的配置 
Java代码   收藏代码
  1. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
  2. <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
  3. <property name="url" value="jdbc:mysql://localhost:3306/test" />  
  4. <property name="username" value="root" />  
  5. <property name="password" value="hjy1984" />  
  6. </bean>  
  7. <!-- Hibernate配置 org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean-->  
  8. <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">  
  9. <property name="dataSource" ref="dataSource" />  
  10. <property name="hibernateProperties">  
  11. <props>  
  12. <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>  
  13. <prop key="hibernate.show_sql">true</prop>  
  14. <prop key="hibernate.form_sql">true</prop>  
  15. <prop key="hibernate.hbm2ddl.auto">create</prop>  
  16. </props>  
  17. </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才能生效。 
Java代码   收藏代码
  1. <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">  
  2. <property name="dataSource" ref="dataSource" />  
  3. <property name="hibernateProperties">  
  4. <props>  
  5. <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>  
  6. <prop key="hibernate.show_sql">true</prop>  
  7. <prop key="hibernate.form_sql">true</prop>  
  8. <prop key="hibernate.hbm2ddl.auto">create</prop>  
  9. <prop key="hibernate.connection.username">root</prop>  
  10. <prop key="hibernate.connection.password">hjy1984</prop>  
  11. <prop key="hibernate.connection.url">jdbc:mysql://localhost:3306/test</prop>  
  12. <prop key="hibernate.default_batch_fetch_size">30</prop>  
  13. </props>  
  14. </property>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值