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文件各种语法介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Mybatis-plus apply函数使用场景分析

    Mybatis-plus apply函数使用场景分析

    Mybatis-plus 里面的 apply方法 是用于拼接自定义的条件判断,自定义时间查询,根据传进来的开始日期,查询所有该日期是数据,但是数据库中保存是时间,所以需要使用apply查询方式并格式化,这篇文章给大家介绍Mybatis-plus apply函数使用,感兴趣的朋友一起看看吧
    2024-02-02
  • Java调用WebService接口的方法

    Java调用WebService接口的方法

    这篇文章主要介绍了Java调用WebService接口的方法,实例分析了有参方法Add的使用技巧,需要的朋友可以参考下
    2015-01-01
  • JDBC数据库连接过程及驱动加载与设计模式详解

    JDBC数据库连接过程及驱动加载与设计模式详解

    这篇文章主要介绍了JDBC数据库连接过程及驱动加载与设计模式详解,需要的朋友可以参考下
    2016-10-10
  • Java 根据网址查询DNS/IP地址的方法

    Java 根据网址查询DNS/IP地址的方法

    这篇文章主要介绍了Java 根据网址查询DNS/IP地址的方法,具体实现代码,大家参考下本文
    2017-12-12
  • Mybatis中typeAliases标签和package标签使用

    Mybatis中typeAliases标签和package标签使用

    这篇文章主要介绍了Mybatis中typeAliases标签和package标签使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • springMVC详细介绍

    springMVC详细介绍

    下面小编就为大家带来一篇基于Spring MVC 详细介绍。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-07-07
  • Java实现AES/CBC/PKCS7Padding加解密的方法

    Java实现AES/CBC/PKCS7Padding加解密的方法

    这篇文章主要介绍了Java实现AES/CBC/PKCS7Padding加解密的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 一篇文章带你了解Java Stream流

    一篇文章带你了解Java Stream流

    Stream流是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。这篇文章主要介绍了Java8新特性Stream流的相关资料,需要的朋友参考下吧
    2021-08-08
  • java实现登录注册界面

    java实现登录注册界面

    这篇文章主要为大家详细介绍了java实现登录注册界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Java使用JSqlParser解析SQL语句应用场景

    Java使用JSqlParser解析SQL语句应用场景

    JSqlParser是一个功能全面的Java库,用于解析SQL语句,支持多种SQL方言,它可以轻松集成到Java项目中,并提供灵活的操作方式,本文介绍Java使用JSqlParser解析SQL语句总结,感兴趣的朋友一起看看吧
    2024-09-09

最新评论