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

整合spring+mybatis的时候抛出如下错误
这里写图片描述
登陆被拒绝?什么鬼,用户名和密码不正确,我用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"/>
        <!--使用外部的mybatis配置文件
            <propety name="configLoaction" value="classpath:mybatis.xml"/> 
         -->
        <property name="typeAliasesPackage" value="com.ly.entity"/>
        <property name="mapperLocations" value="classpath:mapper/*Mapper.xml"/>
    </bean>
    <!--创建映射接口代理实现对象,创建bean的名称默认为映射接口名首字母小写 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ly.mapper"/>
        <!-- 设置映射接口所在的包类 -->
        <!-- 设置sqlsessionfactoryz在spring容器中的名称 -->
        <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.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>4.3.9.RELEASE</version>
        </dependency>
<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
            <scope>runtime</scope>
        </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一下。
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值