对于@param的使用:
-
单个参数:加不加都可以,不重命名的话建议不加。
-
对于基本数据类型 包括string 加不加都可以
-
对于对象,加的话List<User> getUser(@Param("user") User user); 用以# {user.username}
不加则 getUser(User user); = #{username}
-
-
多个参数:建议加。
-
对于基本数据类型,低版本mybatis要加
-
参数包含对象,加不加均可。getUser(String role,User user);
username = #{user.username} role = #{role}
-
-
集合:建议不加,没必要加了后再去对象.属性名去。
-
对于list:void insertUser(@Param("userList") List<User> userList);
<insert id="insertUser"> insert into user(username,password) values <foreach collection="userList" item="user"> (#{user.username}, #{user.password}) </foreach> </insert>
-
对于数组 collection=array
-
对于map 直接使用属性值即可 加@param 如@param(“test”) 用#{test.id}即可
-
后端是pojo(实体)或者map,前端必须传值为{} 后端是集合或者数组,前端必为[]
错误日志:
Uncaught (in promise) Error: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'xmbh' not found. Available parameters are [arg1, arg0, param1, param2] at _default
错误原因:前端传入多个参数(基本数据类型),在后端controller层接收参数,用@param注解给每个参数注解后,忘记了在mapper层给每个参数注解。
:注意后端接收多个参数 mapper层要加@param注解。
2024.6.18