如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式

技术如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式这篇文章给大家分享的是有关如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式的内容。小编觉得挺实用的,因此分享给大家做个参

本文是关于如何使用Mybatis注释来完成SQL语句与输入参数列表的拼接。我觉得边肖很实用,就和大家分享一下作为参考。让我们跟着边肖看一看。

00-1010首先,将列表集拼接成“1,2,3,4”格式字符串。

然后将这个字符串封装在一个类中:TyreInfoIdStr。

如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式

这里的@SelectProvider是以sql语句调用外部类的方法的返回值。

如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式

在这个方法中,SQL语句和列表集的字符串是拼接的,这是我在这里预先拼接的。

如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式

00-1010当deptId为1时,sql语句不会改变。

当deptId是另一个数字时,列表中的Id项用作sql查询条件

在开始编写时,想法是使用or语句来迭代、重复和添加or sql语句来查询。

人们发现这很复杂。最后,采用sql的in函数来实现。

public stringgetdeptidsql(listlongnitillist){ 0

IteratorLongit=deptidlist . iterator();

//部门标识为1时不过滤。

while(it . HasNeXt()){ 0

陇肽=it . next();

if(DepTiD==1){ 0

返回“”;

}

}

//条件语句中的拼接

字符串=' ';

for(inti=0;ideptidlist . size();I){ 0

如果(我!=(DepTidList . size()-1)){ 0

s=deptIdList.get(i)',';

}else{

(=NationalBureauofStandards)国家标准局

p;               s += deptIdList.get(i);
                }
          }
          String sql = " and mtMaintenanceStandard.dept_Id in (" + s + ") ";
          return sql;
}

编写完成后发现函数有可以提高函数的复用性,将mtMaintenanceStandard.dept_Id设为传入的变量

最后得到

public String getDeptIdSql(String condition,List<Long> deptIdList){
    Iterator<Long> it = deptIdList.iterator();
    //当部门id为1时  不采用筛选
    while(it.hasNext()){
          Long deptId = it.next();
          if(deptId == 1){
                return "";
          }
    }
          //拼接in条件语句
          String s = "";
          for(int i = 0; i < deptIdList.size();i++){
                if(i!=(deptIdList.size()-1)){
                      s += deptIdList.get(i) + ",";
                }else{
                      s += deptIdList.get(i);
                }
          }
          String sql = " and " + condition + " in (" + s + ") ";
          return sql;
}

更为通用的版本是不用判断deptId是否为1

public String getDeptIdSql(String condition,List<Long> deptIdList){
          String s = "";
          for(int i = 0; i < deptIdList.size();i++){
                if(i!=(deptIdList.size()-1)){
                      s += deptIdList.get(i) + ",";
                }else{
                      s += deptIdList.get(i);
                }
          }
          String sql = " and " + condition + " in (" + s + ") ";
          return sql;
}

感谢各位的阅读!关于“如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式”这篇文章就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/126938.html

(0)

相关推荐

  • Python中选择结构是怎么样的

    技术Python中选择结构是怎么样的这篇文章主要介绍了Python中选择结构是怎么样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、选择结构通过判断条

    攻略 2021年10月31日
  • MySQL应该学习的6件事是什么

    技术MySQL应该学习的6件事是什么本篇内容介绍了“MySQL应该学习的6件事是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年12月3日
  • 一寸照片尺寸多少厘米,一寸照片长宽分别是多少厘米

    技术一寸照片尺寸多少厘米,一寸照片长宽分别是多少厘米一寸相片的长和宽分别是宽2.6(厘米)一寸照片尺寸多少厘米、长3.7(厘米)。一般照片的尺寸规格/英寸尺寸/cm根据150PPI计算的数码相机可冲洗最大照片的数据对照表

    生活 2021年10月20日
  • react.js有什么特点

    技术react.js有什么特点本篇内容介绍了“react.js有什么特点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    攻略 2021年11月24日
  • Linux下oracle11g在安装grid时密码框中不能输入任何信息怎么办

    技术Linux下oracle11g在安装grid时密码框中不能输入任何信息怎么办小编给大家分享一下Linux下oracle11g在安装grid时密码框中不能输入任何信息怎么办,相信大部分人都还不怎么了解,因此分享这篇文章

    攻略 2021年11月10日
  • IP代理软件怎么助力新媒体增长

    技术IP代理软件怎么助力新媒体增长小编给大家分享一下IP代理软件怎么助力新媒体增长,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、在各种方式

    攻略 2021年11月1日