整合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一下。