mybatis:mapper.xml不执行的问题

mybatis:mapper不执行的问题

最近帮一个小老弟解决一个小bug。

问题描述:login登录,服务器不响应。debug执行到mapper调用xml时不执行,且没有报错。

问题排错

  1. 页面请求进入了controller,确定是服务器的问题。
  2. mapper和xml是mybatis generator自动生成的,不存在错误。
  3. 检查两个主要配置文件,如下:

spring-bean.xml

	<bean id="dataSource"
		class="com.alibaba.druid.pool.DruidDataSource">
		<property name="username" value="${dataSource.username}">property>
		<property name="password" value="${dataSource.password}">property>
		<property name="url" value="${dataSource.url}">property>
		<property name="driverClassName" value="${dataSource.driver}">property>
	bean>

db.properties

dataSource.username=root
dataSource.password=root
dataSource.url=jdbc:mysql://192.168.137.3:3306/test
dataSource.driver=com.mysql.jdbc.Driver

检查一遍,没有任何问题。然后我把自己的配置copy进去,发现程序正常执行了。可知是配置文件出了差错。
我配置文件如下:

	<bean id="dataSource"
		class="com.alibaba.druid.pool.DruidDataSource">
		<property name="username" value="${datasource.username}">property>
		<property name="password" value="${datasource.password}">property>
		<property name="url" value="${datasource.url}">property>
		<property name="driverClassName" value="${datasource.driver}">property>
	bean>
datasource.username=root
datasource.password=root
datasource.url=jdbc:mysql://192.168.137.3:3306/test
datasource.driver=com.mysql.jdbc.Driver

经过仔细对比发现:datasource和dataSource,一个S大写,一个s小写。然而bean中引用db中的key,如果两边一致按理说是没有任何问题的,这也是第一遍检查配置文件没有找到问题的原因。但实际上通过测试,发现datasource小写的,程序执行没有问题;dataSource大写,程序执行mapper就会卡主。

最后解决方案,当然是bean和db文件,datasource都改成 小写就好了。但是为什么两个配置文件都用dataSource就不行呢?这就引发了另一个思考。

你可能感兴趣的:(框架,java,mybatis,工作杂症)