XML那里写错了,更正成parameterType="map",并不是java.util.Map

扩展阅读:

在mapper中如何传递多个参数?

第一种:使用占位符的思想

在映射文件中使用#{0},#{1}代表传递进来的第几个参数

使用@param注解:来命名参数

#{0},#{1}方式

//对应的xml,#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二参数,更多参数一致往后加即可。

select * fromuser_user_t whereuser_name = #{0} anduser_area=#{1}

@param注解方式

public interface usermapper {

user selectuser(@param(“username”) string username,

@param(“hashedpassword”) string hashedpassword);

}

select id, username, hashedpassword

from some_table

where username = #{username}

and hashedpassword = #{hashedpassword}

第二种:使用Map集合作为参数来装载

try{

//映射文件的命名空间.SQL片段的ID,就可以调用对应的映射文件中的SQL

/**

* 由于我们的参数超过了两个,而方法中只有一个Object参数收集

* 因此我们使用Map集合来装载我们的参数

*/

Map map = new HashMap();

map.put("start", start);

map.put("end", end);

return sqlSession.selectList("StudentID.pagination", map);

}catch(Exception e){

e.printStackTrace();

sqlSession.rollback();

throw e;

}finally{

MybatisUtil.closeSqlSession();

}

/*根据key自动找到对应Map集合的value*/

select * from students limit #{start},#{end};

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐