@RepositorypublicclassSessionMapperextendsSqlSessionDaoSupport{@Resourcepublic void setSqlSessionFactory(SqlSessionFactorysqlSessionFactory) {super.setSqlSessionFactory(sqlSessionFactory); }// 区域楼宇单元房号 - 房屋ID @SuppressWarnings("unchecked") publicMap getHouseMapByAreaId(LongareaId) {MapResultHandlerhandler =newMapResultHandler();this.getSqlSession().select(BaseUnitMapper.class.getName()+".getHouseMapByAreaId", areaId, handler);Map map = handler.getMappedResults();returnmap; } }
MapResultHandler 处理程序,将结果集放入 HashMap
publicclassMapResultHandlerimplementsResultHandler{privatefinalMap mappedResults =newHashMap();@OverridepublicvoidhandleResult(ResultContext context){@SuppressWarnings("rawtypes") Map map = (Map)context.getResultObject(); mappedResults.put(map.get("key"), map.get("value")); }publicMapgetMappedResults(){returnmappedResults; } }
示例 Mapper
@Mapper@RepositorypublicinterfaceBaseUnitMapper{// 收费标准绑定 区域楼宇单元房号 - 房屋ID Map getHouseMapByAreaId(@Param("areaId") Long areaId); }
示例 Mapper.xml
SELECTCONCAT( h.bulid_area_name, h.build_name, h.unit_name, h.house_num ) k, h.house_id vFROMbase_house hWHEREh.area_id =#{areaId} GROUPBYh.house_id
之后在代码中调用 SessionMapper 类对应的方法即可。
使用 values 批量插入
MySQL insert 语句支持使用 values (),(),() 的方式一次插入多行数据,通过 mybatis foreach 结合 java 集合可以实现批量插入,代码写法如下:
insertintotable(colom1, colom2) values ( #{item.colom1}, #{item.colom2})
使用 EasyPOI 读写 Exc
亚马逊测评 www.yisuping.com