异常信息
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 表达式的写法