在Mybatis中,可以使用 <distinct>
标签来实现对查询结果的去重。
例如,在Mybatis的映射文件中定义查询的SQL语句:
<select id="findDistinctUsers" resultType="hashmap" >
SELECT DISTINCT * FROM USERS
</select>
在java中调用这个查询:
List<Map<String, Object>> result = sqlSession.selectList("findDistinctUsers");
这样就能查询出不重复的用户数据了。
当然也可以在mapper中对指定的字段进行去重,例如:
<select id="findDistinctUsername" resultType="hashmap" >
SELECT DISTINCT username FROM USERS
</select>
在java中调用这个查询:
List<Map<String, Object>> result = sqlSession.selectList("findDistinctUsername");
这样就能查询出不重复的用户名。
不过注意,使用distinct标签会对性能有一定影响,因为在整个查询结果集中,会进行全部查询到内存中去重,这样会导致内存占用和性能问题。