@RestController("/Mgserver")
public class UserController {}
解决方式:
将原来的
@RestController("/Mgserver")
修改为
@RestController
@RequestMapping("/Mgserver")
4、问题四:
2019-06-14 15:44:35.300 ERROR 12376 --- [nio-8888-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='age', mode=IN, javaType=class java.lang.Integer, jdbcType=INTEGER, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #3 with JdbcType INTEGER . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer] with root cause
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
问题原因:
接口的参数使用的是Map
int addUser(Map<String, Object> map);
在xml映射文件里面,parameterType又使用了对象:
解决方式:
将xml映射文件里面的parameterType修改为“map”即可。
附:个人在增删改查方法里面直接使用map而不用对象做参数的原因有二
1、可以精简多行代码;
对于新增用户的需求,若是使用对象做参数,代码如下:
Users user = new Users();
String name = (String) map.get("name");
Integer age = (Integer) map.get("age");
String sex =(String) map.get("sex");
String hobby =(String) map.get("hobby");
user.setAge(age);
user.setHobby(hobby);
user.setName(name);
user.setSex(sex);
userMapper.addUser(user);