-★出爺;3 发表于 2016-11-26 08:19:53

Mybatis 动态获取字段值(不需要创建javabean)

  最近遇到一个这样的需求,如下:
  用户可以通过自定义模板选择需要查询显示的字段,需要动态查询显示。
  前提:数据库有一张表,里面有400多个字段。
  要求:用户在前台可以自定义模板,一个模板可能对应x个字段,自定义完成(比如自定义了一个名字为 RNC话务模型),用户点击RNC话务模型,需要查询出来刚才自定义的那些字段的数据。
  技术实现:用mybatis做数据层 (mybatis查询原理:查询出来的数据会封装为一个map,将字段名作为key值,数据作为value值)
  具体实现:
  mybatis.xml配置如下:
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  <mapper namespace="com.huawei.galaxy.mybatis.dao.IDeepInsightGetDataMapper">
  <select id="queryFlowData" parameterType="Map" resultType="Map"> 
  <![CDATA[ 
  SELECT * FROM TABLE
  ]]>
  WHERE 1 = 1
  <if test="param!= null and  param != '' ">
  .........................
  </if>
  </select>
  </mapper>
  dao层接口定义:
  public interface IDeepInsightGetDataMapper extends IBenchMarkMapper {
  /**
  * 功能:查询流量高地数据
  * @param param 传递参数
  * @return
  */
  public List<Map<String, Object>> queryFlowData(Map<String,Object> param);
  }
  service层接口定义:
  public interface IDeepInsightService {
  public List<List<Object>> getData(Map<String,Object> paramMap,TableParam pageParam);
  }
页: [1]
查看完整版本: Mybatis 动态获取字段值(不需要创建javabean)