老司機學習MyBatis之MyBatis如何使用Map處理引數
阿新 • • 發佈:2019-02-14
一、前言
如果多個引數不是業務模型中的資料,沒有對應的POJO,為了方便,我們直接封裝成Map傳入。#{key}取出map中對應的值。
二、案例
在UserMapper.java增加查詢方法findUserByMapParam,如下:
/**
* 封裝Map作為傳遞引數的載體
* @param user
* @return
*/
public User findUserByMapParam(Map<String,Object> map);
UserMapper.xml檔案修改如下:
<select id="findUserByMapParam" parameterType="map" resultType="com.queen.mybatis.bean.User"> select id, loginId, userName, role, note from t_user where id = #{id} </select>
增加測試方法testMapParam如下:
@Test public void testMapParam() throws IOException { SqlSessionFactory sqlSessionFactory = getSqlSessionFactory(); SqlSession openSession = sqlSessionFactory.openSession(); try { UserMapper mapper = openSession.getMapper(UserMapper.class); Map<String,Object> map =new HashMap<String,Object>(); map.put("id", 1); User user = mapper.findUserByMapParam(map); System.out.println(user); } finally { openSession.close(); } }
測試查詢功能,控制檯列印如下:
2017-08-05 09:05:00,041 [main] [com.queen.mybatis.mapper.UserMapper.findUserByMapParam]-[DEBUG] ==> Preparing: select id, loginId, userName, role, note from t_user where id = ? 2017-08-05 09:05:00,108 [main] [com.queen.mybatis.mapper.UserMapper.findUserByMapParam]-[DEBUG] ==> Parameters: 1(Integer) 2017-08-05 09:05:00,158 [main] [com.queen.mybatis.mapper.UserMapper.findUserByMapParam]-[DEBUG] <== Total: 1 User [id=1, loginId=queen, userName=奎恩, role=海賊王副把手, note=專門負責提鞋的。。。]
=======歡迎大家拍磚,小手一抖,多多點贊喲!=======