org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.tjw.demo.service.UserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
希望在bean中通过@Autowired注解来省去写getter和setter方法的麻烦,但是在配置文件中还是要配置<bean id="userService" class="com.tjw.demo.service.impl.UserServiceImpl"/>
,不然就会报这个错误。org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0' defined
这个问题就是因为在mapper的namespace中没有注意命名,因为之前的Demo都是在Mapper类那边通过指定namespace来调用对应的sql语句,但是结合SpringMVC之后,就直接通过namespace对应存在的Mapper来完成映射。所以要注意这一点。还有另外一个原因导致这个问题,就是Spring没有找到mybatis的配置文件,放在同一个目录下面通过相对路径的方法访问是行不通的,所以我放到resources的根目录下面,通过classpath:Configuration.xml访问。There is no getter for property named 'account' in 'class java.lang.String'
问题出在<select id="findUserByParam" parameterType="string" resultType="User">
select * from tb_user as u
<if test="account!=null">
where u.account=#{account}
</if>
</select>
这里面的if,当用test对参数进行判断时,一定要用_parameter来接收传过来的参数。但是当传过来的是一个对象,要访问这个对象中的属性,就一定要用这个对象中的getter和setter中对应的名字了;当然,访问这个对象也是要用_parameter的。HTTP Status 400 The request sent by the client was syntactically incorrect.
一个低级错误,本来account定义的是Integer,但是测试的时候前台却随便输入一段英文字母来测试,结果当然爆炸了。
Mybatis问题汇总
最新推荐文章于 2024-07-25 15:59:10 发布