Mybatis问题汇总

来源:互联网 发布:雨田药品软件 编辑:程序博客网 时间:2024/06/11 22:34
  1. 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"/>,不然就会报这个错误。
  2. 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访问。
  3. 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的。
  4. HTTP Status 400 The request sent by the client was syntactically incorrect.
    一个低级错误,本来account定义的是Integer,但是测试的时候前台却随便输入一段英文字母来测试,结果当然爆炸了。
0 0
原创粉丝点击