mybatis的使用-Mapper文件各种语法介绍

 更新时间:2020年11月30日 08:41:14   作者:huxl_hi  
这篇文章主要介绍了mybatis的使用-Mapper文件各种语法介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

一、查询

mybatis自定义查询条件,queryString、queryMap、limit,Mapper文件写法如下:

<select id="getByQueryParam" parameterType="com.systom.base.BaseDaoQueryParam" resultMap="BaseResultMap">
 SELECT
  *
 FROM
  user
 WHERE 1 = 1
 <if test="paramString != null">
 and ${paramString}
 </if>
 <foreach collection="paramMap.keys" item="k" separator=""> 
 <if test="null != paramMap[k]"> 
  and ${k} = #{paramMap.${k}} 
 </if> 
 </foreach>
  <if test="paramInt1 != null and paramInt1 > 0 and paramInt2 != null and paramInt2 > 0">
 limit #{paramInt1,jdbcType=INTEGER}, #{paramInt2,jdbcType=INTEGER}
 </if>
 </select>

以及传入参入的bean类:

package com.systom.base; 
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
 
public class BaseDaoQueryParam implements Serializable {
 
 private static final long serialVersionUID = -8917191044499296040L;
 private String paramString;
 private Map<String, Object> paramMap = new HashMap<String, Object>();
 private int paramInt1;
 private int paramInt2;
 private String orderBy;
 private String orderType;
 
 public BaseDaoQueryParam(String paramString, Map<String, Object> paramMap, int paramInt1,
 int paramInt2) {
 super();
 this.paramString = paramString;
 if(paramMap != null) this.paramMap = paramMap;
 this.paramInt1 = paramInt1;
 this.paramInt2 = paramInt2;
 }
 
 public BaseDaoQueryParam(String paramString, Map<String, Object> paramMap, int paramInt1,
 int paramInt2, String orderBy, String orderType) {
 super();
 this.paramString = paramString;
 if(paramMap != null) this.paramMap = paramMap;
 this.paramInt1 = paramInt1;
 this.paramInt2 = paramInt2;
 this.orderBy = orderBy;
 this.orderType = orderType;
 }
 
 public String getParamString() {
 return paramString;
 }
 
 public void setParamString(String paramString) {
 this.paramString = paramString;
 }
 
 public Map<String, Object> getParamMap() {
 return paramMap;
 }
 
 public void setParamMap(Map<String, Object> paramMap) {
 this.paramMap = paramMap;
 }
 
 public int getParamInt1() {
 return paramInt1;
 }
 
 public void setParamInt1(int paramInt1) {
 this.paramInt1 = paramInt1;
 }
 
 public int getParamInt2() {
 return paramInt2;
 }
 
 public void setParamInt2(int paramInt2) {
 this.paramInt2 = paramInt2;
 }
 
 public String getOrderBy() {
 return orderBy;
 }
 
 public void setOrderBy(String orderBy) {
 this.orderBy = orderBy;
 }
 
 public String getOrderType() {
 return orderType;
 }
 
 public void setOrderType(String orderType) {
 this.orderType = orderType;
 }
}

补充 知识:mybatis的mapper文件的大于号特殊符号使用

第一种方法:

用了转义字符把>和<替换掉,然后就没有问题了。

SELECT * FROM test WHERE 1 = 1 AND start_date &lt;= CURRENT_DATE AND end_date &gt;= CURRENT_DATE

附:XML转义字符

&lt;

<

小于号

&gt;

>

大于号

&amp;

&

&apos;

'

单引号

&quot;

"

双引号

第二种方法:

因为这个是xml格式的,所以不允许出现类似“>”这样的字符,但是都可以使用<![CDATA[ ]]>符号进行说明,将此类符号不进行解析

你的可以写成这个:

mapper文件示例代码

<![CDATA[ when min(starttime)<='12:00' and max(endtime)<='12:00' ]]>

在mybatis 的mapper配置文件sql语句中, 有时用到 大于, 小于等等的比较, 直接写在里面就被当做标签的开头来处理了, 所以不可.现在又2种解决方法:

一, 用<![CDATA[ ]]>标识,例如:

<if test="menu.authority != null"> 
 <![CDATA[ and authority < #{menu.authority}]]> 
</if> 

其中不但能用大于'>', 小于'<', 小于等于'<=', 大于等于'>=' 也是可以的.

二, 转义, 例如:

<if test="menu.authority != null"> 
 and authority &lt; #{menu.authority} 
</if> 

如此这般......

同样可以可以和等号'='一起来使用, 来表示大于等于, 小于等于等.如

<if test="menu.authority != null"> 
 and authority &gt;= #{menu.authority} 
</if> 

以上这篇mybatis的使用-Mapper文件各种语法介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring Boot 防止接口恶意刷新和暴力请求的实现

    Spring Boot 防止接口恶意刷新和暴力请求的实现

    本文主要介绍了Spring Boot 防止接口恶意刷新和暴力请求的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • SpringBoot中swagger的使用

    SpringBoot中swagger的使用

    这篇文章主要介绍了SpringBoot中swagger的使用,文中有非常详细的代码示例,对正在学习swagger的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • Java实现字符串反转

    Java实现字符串反转

    这篇文章介绍了Java实现字符串反转的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • SpringBoot中4种接口幂等性的实现策略

    SpringBoot中4种接口幂等性的实现策略

    幂等性是指对同一操作执行多次与执行一次的效果相同,不会因为重复执行而产生副作用,本文整理了4个SpringBoot实现接口幂等性的方法,大家可以根据需要进行选择
    2025-04-04
  • java图片压缩工具类

    java图片压缩工具类

    这篇文章主要为大家详细介绍了java图片压缩工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • SpringBoot集成Spring Security用JWT令牌实现登录和鉴权的方法

    SpringBoot集成Spring Security用JWT令牌实现登录和鉴权的方法

    这篇文章主要介绍了SpringBoot集成Spring Security用JWT令牌实现登录和鉴权的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Java读取文件方法汇总

    Java读取文件方法汇总

    这篇文章主要为大家详细介绍了Java读取文件方法,按字节读取文件内容、按字符读取文件内容、随机读取文件内容等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Spring boot使用spring retry重试机制的方法示例

    Spring boot使用spring retry重试机制的方法示例

    这篇文章主要介绍了Spring boot使用spring retry重试机制的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Java concurrency之AtomicLong原子类_动力节点Java学院整理

    Java concurrency之AtomicLong原子类_动力节点Java学院整理

    AtomicLong是作用是对长整形进行原子操作。下面通过本文给大家介绍Java concurrency之AtomicLong原子类的相关知识,感兴趣的朋友一起看看吧
    2017-06-06
  • 浅谈Java字符串比较的三种方法

    浅谈Java字符串比较的三种方法

    这篇文章主要介绍了浅谈Java字符串比较的三种方法,字符串比较是常见的操作,包括比较相等、比较大小、比较前缀和后缀串等,需要的朋友可以参考下
    2023-04-04

最新评论