采用spring+mybatis整合 : invalid username/password; logon denied异常的解决方案

整合spring+mybatis的时候抛出如下错误
采用spring+mybatis整合 : invalid username/password; logon denied异常的解决方案_第1张图片
登陆被拒绝?什么鬼,用户名和密码不正确,我用plsql都能连上,配置如下
spring.xml

<context:property-placeholder location="classpath:db.properties"/>
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
        <property name="driverClassName" value="${driverClassName}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
        <property name="initialSize" value="${initalSize}"/>
        <property name="minIdle" value="${minIdle}"/>
        <property name="maxTotal" value="${maxTotal}"/>
    bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        
        <property name="typeAliasesPackage" value="com.ly.entity"/>
        <property name="mapperLocations" value="classpath:mapper/*Mapper.xml"/>
    bean>
    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ly.mapper"/>
        
        
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> 
    bean>

db.properties

数据库连接属性

driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
username=ly
password=a
initalSize=10
minIdle=5
maxTotal=100

pom.xml部分配置

<dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-context-supportartifactId>
            <version>4.3.9.RELEASEversion>
        dependency>
<dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatis-springartifactId>
            <version>1.3.0version>
            <scope>runtimescope>
        dependency>
<property name="username" value="ly"/>
<property name="password" value="a"/>

我将spring.xml配置中dataSource bean的username,和password不是用占位符,直接写死,发现问题解决。问题定位到了db.properties的占位符,我将username 改为uname发现没有报错。这就很奇怪了,我记得以前使用username都没有问题,现在怎么报错了,通过打断点,发现。spring在会优先读取systemProperties的属性,里面也有一个属性叫username = ‘xx’,我的操作系统用户名。因此造成用户名和密码不一致。先mark一下。
采用spring+mybatis整合 : invalid username/password; logon denied异常的解决方案_第2张图片

你可能感兴趣的:(java)