mybatis框架映射文件配置错误异常:org.springframework.web.util.NestedServletException

异常信息

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.String'
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:986)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:870)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

异常文件位置

<!--查询一条方法-->
    <select id="findOrdersById" parameterType="String" resultMap="ordersMap" >
        SELECT * from orders
        <where>
            <if test=" id != null id != '' ">
                 id = #{id}
            </if>
        </where>
    </select>

错误原因

parameterType="String"   ----------->id 
String 类型对应的 id 在进行条件判断时找的位置不对,文中找的是class java.lang.String
实际要找的位置是,你id 所在的实体类

解决措施

<!--查询一条方法-->
    <select id="findOrdersById" parameterType="String" resultMap="ordersMap" >
        SELECT * from orders
        <where>
            <if test=" _parameter!= null _parameter!= '' ">
                 id = #{id}
            </if>
        </where>
    </select>

在:标签的 test 属性中写的是对象的属性名,如果是包装类的对象要使用 OGNL 表达式的写法
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43231352/article/details/83186896