Mybatis中查询语句map的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis中查询语句map的使用相关的知识,希望对你有一定的参考价值。
参考技术A map作为参数,如果一个表有很多列,但是我查询语句只需要用到其中的一个列,如果让实体类作为参数可能会不太方便,使用map作为参数,然后将需要用到的列的字段作为key,put相应的值就能解决这个问题。map作为结果集来接收,这个时候要使用到一个属性resultMap,然后配合resultMap标签使用。sql语句中resultMap属性的参数,作为resultMap标签的id属性值,返回的真正类型用实体类全限定名。这样可以使得实体类中的属性和表中的列不用严格的一一对应,而是可以自己设置对应关系。
mybatis框架中parameterType为Map的用法 和 数据库语句多层嵌套
当需用到参数Map里面的数据时,直接写传进去的key,例Map map = new HashMap(); map.put("currPage1",10); 在mybatis的xml文件中需要引用的地方写上currPage1,如下文
数据库语句多层嵌套时,先执行最里层的语句,表的别名定义语句的最里层,红色字体是多表联查时定义的查询最大记录数
例:
<select id="query" parameterType="java.util.Map" resultMap="CsSmbmsBill1">
select * from (select b.*,rownum rn from
(select b.*,p.PRONAME,count(b.id)over() min from CS_SMBMS_BILL b inner join CS_SMBMS_PROVIDER p on b.Providerid=p.id where 1=1
<if test="pp.Productname!=null">and b.productname like concat(concat(‘%‘,#{pp.Productname}),‘%‘)</if>
<if test="pp.PROVIDERID!=0">and p.id=#{pp.PROVIDERID}</if>
<if test="pp.Ispayment!=0"> and b.ispayment=#{pp.Ispayment}</if>
)b where rownum <=#{pageSize1}) b where rn > #{currPage1}
</select>
以上是关于Mybatis中查询语句map的使用的主要内容,如果未能解决你的问题,请参考以下文章
MyBatis 中SQL语句怎么样使用两种类型的参数带条件查询