mybatis返回key value map集合
HQZYX 人气:0mybatis返回key value map集合
XML:文件
<select id="getData" resultMap="userMap" > SELECT id,name FROM user </select> <resultMap id="userMap" type="java.util.Map" > <result column="id" property="key" jdbcType="VARCHAR" /> <result column="name" property="value" jdbcType="VARCHAR" /> </resultMap>
Service实现类: namespaceXml根据自己xml命名取
import org.apache.ibatis.session.SqlSession; @Autowired private SqlSession sqlSession; public Map<String, String> getBasicInformationOfCompanyPersonnel(String status) throws Exception { Map<String, Object> params = new HashMap<>(); params.put("status", status); MapResultHandler handler = new MapResultHandler(); Map result = handler.getMappedResults(); sqlSession.select("namespaceXml.getData",params,handler); return result; }
工具类:
import org.apache.ibatis.session.ResultContext; import org.apache.ibatis.session.ResultHandler; public class MapResultHandler implements ResultHandler { @SuppressWarnings("rawtypes") private final Map mappedResults = new HashMap(); @SuppressWarnings("unchecked") @Override public void handleResult(ResultContext context) { @SuppressWarnings("rawtypes") Map map = (Map) context.getResultObject(); // xml配置里面的property的值,对应的列 mappedResults.put(map.get("key"), map.get("value")); } @SuppressWarnings("rawtypes") public Map getMappedResults() { return mappedResults; } }
mybatis返回map,key为主键,value为对象
@MapKey("id") public Map<String,User> getUserByName(String name);
xml中
<select id="getUserByName" resultType = "User"> select * from user where name=#{param1} </select>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容