mybatis的查询sql,参数为map

原创 2018年04月16日 16:41:38

1.将参数封装到map集合中(用param.

service层

String tableName = "userData";
Map<String,Object> params = new HashMap<>();
params.put("userId", userId);
params.put("name", name);
List<UserData> list = userDataMapper.listSelective(tableName, params);

mapper层

List<UserData> listSelective(
            @Param("tableName") String tableName,
            @Param("params") Map<String, Object> params);

xml中

 <select id="listSelective" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from ${tableName} 
        <trim prefix="where" prefixOverrides="and|or">
            <if test="params.userId != null">
                user_id = #{params.userId,jdbcType=BIGINT}
            </if>
            <if test="params.name !=null and params.name !='' ">
                and name like concat("%",#{params.name, jdbcType=VARCHAR},"%")
            </if>
        </trim>
    </select>

1.传表明使用$
2.concat拼接字符串,mysql中concat 和 group_concat()的用法

2.将参数封装到map集合中(不用param.)

mapper层

List<CloanUserModel> listModel(Map<String, Object> params);

xml

<!-- 基本用户信息的sql查询条件公共引用 -->
    <sql id="searchBaseBy">
        <trim prefix="where" prefixOverrides="and|or">
            <if test="loginName !='' and loginName !=null">
                and u.login_name like concat("%",#{loginName,jdbcType=VARCHAR},"%")  
               </if>
            <if test="registTime !=null">
                and DATE_FORMAT(u.regist_time,'%Y-%m-%d') = #{registTime,jdbcType=TIMESTAMP}
            </if>
            <if test="startTime != null">
                and DATE_FORMAT(u.regist_time,'%Y-%m-%d') &gt;= #{startTime,jdbcType=TIMESTAMP}
            </if>
            <if test="endTime  != null">
                and DATE_FORMAT(u.regist_time,'%Y-%m-%d') &lt;= #{endTime,jdbcType=TIMESTAMP}
            </if>
        </trim>
    </sql>

  <select id="listModel" resultMap="BaseInfoModelMap" parameterType="java.util.HashMap">
        select u.id,u.login_name,a.real_name,
        (SELECT c.used FROM arc_credit c where c.consumer_no = u.id)  as used
        from cl_user u left join cl_user_base_info a on u.id = a.user_id
        LEFT JOIN cl_user_auth b ON a.user_id = b.user_id
        <include refid="searchBaseBy"/>
        order by u.id desc
    </select>

先暂时写这两种,至于foreach使用,日后补充,可以参考基于mysql对mybatis中的foreach进行深入研究

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cherry_xiu/article/details/79962692

Mybatis进行id类型、String类型、map类型、ben类型参数传入Sql查询

Mybatis进行id类型、String类型、map类型、ben类型参数传入Sql查询
  • xiaokui_wingfly
  • xiaokui_wingfly
  • 2015-01-20 15:32:00
  • 5626

mybatis 动态sql之Map参数

Mapper文件: select * from prod_purchase where 1=1 and purc_id=#{purc_id} and prod_id=#{pro...
  • u012557538
  • u012557538
  • 2016-03-25 11:56:57
  • 29584

Mybatis中通过HaseMap封装参数作为查询条件

HaseMap封装参数 Map paramMap = new HashMap(); List aprrovalStatus = new ArrayList(); aprrovalStatus....
  • wanghang88
  • wanghang88
  • 2016-07-31 01:28:15
  • 2871

使用mybatis查询sql注入到 map 中,唯空字段 也获取出来

发现问题:前台输入一个 sql ,后台直接验证sql后数据库查询,将查询到的数据以table的形式前端显示。 某用户通过不同条件获取到的数据字段数不相同,不完整。 查询原因:mybatis 默认情况下...
  • xiaoyu19910321
  • xiaoyu19910321
  • 2017-07-31 16:32:57
  • 358

Ibatis/mybatis中,查询SQL参数和返回都是Map的情况

在实际开发中,经常需要SQL查询的参数为map,而返回的结果集也是map的情况,不用去写繁琐的ResultMap. 其DAO接口代码如下:...
  • simon_xu_sh
  • simon_xu_sh
  • 2015-02-02 17:49:02
  • 911

MyBatis中的动态SQL,实现不确定条件的CRUD-----使用Map来传递查询的参数

1、MyBatis中的动态SQL,实现不确定条件的CRUD的实现       将查询条件封装到map里面,通过 if 和 where 标签的使用,实现sql的动态性 2、动态SQL,实现不确定条件的查...
  • zbw18297786698
  • zbw18297786698
  • 2016-12-18 15:02:20
  • 4990

Mybatis 连表查询,返回结果封装为Map

在SSM的项目中,数据的持久化操作都使用Mybatis实现,Mybatis抢的Mapper配置文件,可以让我们灵活得编写SQL语句。在我们需要进行连表查询时,需要传入的参数可能不止一个,这个时候我们将...
  • vili_sky
  • vili_sky
  • 2017-06-15 15:26:58
  • 11975

Mybatis传入多参数查询ParameterType=Map问题

想用ParameterType=Map传入多个参数构造SQL进行查询 select bs.bus_id as bus_id,bs.arrive_time as up_time,b.start_...
  • jackylovesjava
  • jackylovesjava
  • 2015-11-12 22:04:09
  • 12945

mybatis3 Map 参数

在本系列文章的《MyBatis多参数传递之Map方式示例》一文中,网友mashiguang提问如下的方法如何传递参数:public List findStudents(Map conditions, ...
  • smithdoudou88
  • smithdoudou88
  • 2015-06-30 17:43:09
  • 509

解决MyBatis查询结果Map中值为null不存储键值的问题

在日常开发中,查询数据返回类型为map,数据库中有些自动值为空,则返回的结果中没有值为空的字段,则如何显示值为空的字段呢? 1.xml文件: ...
  • u014079773
  • u014079773
  • 2017-03-27 16:26:49
  • 4545
收藏助手
不良信息举报
您举报文章:mybatis的查询sql,参数为map
举报原因:
原因补充:

(最多只允许输入30个字)