上次写[简单]Spring_Mybatis_CRUD简单示例(带数据库),遇到一个问题,在返回Map类型时候没有解析正确,不得不返回一个JavaBean,趁着有空,重新看了下,现在可以用Mybatis返回Map,List<Map>了。
返回Map,Mybatis配置如下:
<select id="getCountyHashMap" resultType="java.util.HashMap"> select name,id from tsql_test_region where id=#{id} </select>
ServiceImpl如下:
public Map<String, Long> getCountyHashMap(long id) { Map<String, Object> regionMap = regionInfoMapper.getCountyHashMap(id); Map<String, Long> resultMap = new HashMap<String, Long>(); String region = null; Long vid = null; for (Map.Entry<String, Object> entry : regionMap.entrySet()) { if ("NAME".equals(entry.getKey())) { region = (String) entry.getValue(); } else if ("ID".equals(entry.getKey())) { vid = ((java.math.BigDecimal) entry.getValue()).longValue(); } } resultMap.put(region, vid); return resultMap; }
Controller如下:
@RequestMapping(value = "/region3", method = RequestMethod.GET) public @ResponseBody Map<String, Long> getCountyMap(@RequestParam(required = true) int regionId) { return regionInfoService.getCountyHashMap(regionId); }
结果为:
返回List<Map>类似:
Mybatis配置:
<select id="getRegionHashMap" resultType="java.util.HashMap"> select name,id from tsql_test_region order by id </select>
ServiceImpl如下:
public Map<String, Long> getRegionHashMap() { List<Map<String, Object>> regionMap = regionInfoMapper .getRegionHashMap(); Map<String, Long> resultMap = new HashMap<String, Long>(); for (Map<String, Object> map : regionMap) { String region = null; Long id = null; for (Map.Entry<String, Object> entry : map.entrySet()) { if ("NAME".equals(entry.getKey())) { region = (String) entry.getValue(); } else if ("ID".equals(entry.getKey())) { id = ((java.math.BigDecimal) entry.getValue()).longValue(); } } resultMap.put(region, id); } return resultMap; }
Controller如下:
@RequestMapping(value = "/region2", method = RequestMethod.GET) public @ResponseBody Map<String, Long> getRegionMap() { return regionInfoService.getRegionHashMap(); }
结果为:
本文系原创,转载请注明出处,谢谢。
全文完。
相关推荐
在MyBatis中,处理集合参数如list、array以及map是非常常见的操作。这些参数通常用于构建动态SQL,特别是当需要在`IN`语句中使用多个值时。下面将详细解释如何在MyBatis中使用这些参数类型。 1. **List参数**: 当...
public static Map<String, Object> toCamelCaseMap(Map<String, Object> map) { return map.entrySet().stream() .collect(Collectors.toMap( entry -> underscoreToCamelCase(entry.getKey()), entry -> ...
MyBatis提供了多种动态SQL标签,如`<if>`、`<choose>`、`<when>`、`<otherwise>`、`<trim>`、`<where>`、`<set>`和`<foreach>`等,这些标签可以用来构建灵活多变的SQL语句。 #### 三、`<where>`标签详解 `<where>`...
查询出列表,也就是返回list, 在我们这个例子中也就是 List<User> , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的 ...
public Map<String, Object> handleAjaxRequest(@RequestParam Map<String, String> params) { // 处理业务逻辑 List<Movie> movies = movieDao.getMovies(params); return Collections.singletonMap("movies", ...
<select id="selectH5ListByDeployId" resultMap="jxhJSZBH5ListMap"> <!-- SQL查询语句,获取与Car关联的所有Light对象 --> </select> ``` 在`Car`对象的`resultMap`中,`<collection>`标签引用了上述`selectH...
-- 无条件查询,查询全部,返回值以键值对形式存在List<Map<String,Object>>中 --> <select id="findAll" resultType="java.util.HashMap" > select id,studentId,studentName from t_student </select> <!-- ...
List<String> warnings = new ArrayList<>(); boolean overwrite = true; InputStream in = MyBatisGeneratorMain.class.getResourceAsStream("/generatorConfig.xml"); ConfigurationParser cp = new ...
Map<String, Object> params = new HashMap<>(); params.put("name", "张三"); params.put("age", 20); List<Student> students = studentMapper.selectByCondition(params); ``` #### 四、MyBatis与Spring整合 **...
List<User> users = userService.page(new Page<>(pageNum, 10)).getRecords(); ModelAndView modelAndView = new ModelAndView("userList"); modelAndView.addObject("users", users); modelAndView.addObject...
Map<String, Object> result = new HashMap<>(); result.put("total", userPage.getTotal()); result.put("rows", userPage.getList()); return result; } } ``` 前端页面根据返回的分页数据渲染Bootstrap的...
return new PageInfo<>(users); } } ``` 至此,我们已经成功地在Spring Boot项目中集成了MyBatis分页插件。通过这种方式,开发者可以轻松实现数据库查询的分页功能,提高应用性能,同时降低开发复杂度。在实际...
PageInfo<User> pageInfo = new PageInfo<>(users); return pageInfo; } ``` 总结一下,本教程详细介绍了如何在Spring Boot项目中集成MyBatis,并利用PageHelper分页插件实现数据的分页查询。这包括了添加依赖、...
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 添加 mybatis-config配置上去。--> <property name=...
List<Map<String, Object>> result = jdbcTemplate.queryForList("SELECT * FROM my_table", new Object[]{}); ``` 接下来,这些Map数据需要传递到JSP页面进行展示。在JSP中,我们可以使用EL(Expression Language...
public List<Sys_user> selectByPageCondition(Map<String, Object> map) { int pageNo = Integer.parseInt(map.get("pageNo").toString()); int pageSize = Integer.parseInt(map.get("pageSize").toString()); ...
PageInfo<User> pageInfo = new PageInfo<>(users); // 获取分页信息 return new PageResult<>(pageInfo); } } ``` 在Controller层,我们可以将`PageResult`对象转换为JSON格式,通过RESTful接口返回给前端: `...
MyBatis通过`<if>`, `<choose>`, `<when>`, `<otherwise>`, `<where>`, `<set>`, `<foreach>`等标签来实现动态SQL的构建。 1. `<if>`标签:用于判断某个条件是否成立,如果成立则插入相应的SQL片段。例如,当查询...
<select id="selectUsers" parameterType="map" resultType="com.example.model.User"> SELECT * FROM user <where> <if test="name != null"> AND name LIKE #{name} </if> <if test="age != null and age > ...
<select id="findActiveUsers" parameterType="map"> SELECT * FROM users <if test="active == true"> WHERE active = #{active} </if> </select> ``` 在这个例子中,只有当`active`参数为`true`时,才会添加...