字符串转换成数据库in语句的形式(五)
  TEZNKK3IfmPf 2023年11月15日 49 0


在数据库操作的时候,参数通常不仅仅是普通的值,还有一种 in 的形式。 如查询员工编号是 1,3,6,7 的人。 可以写成 user_id in (‘1’,‘3’,‘6’,‘7’) 这样的形式。 而传入的参数值 一般是 1,3,6,7 。 需要进行相应的转换。 即 1,3,6,7 与 (‘1’,‘3’,‘6’,‘7’) 之间的转换。

二. 替换方法replaceAll()

仔细观察,可以发现 (‘1’,‘3’,‘6’,‘7’) ,可以看成 (’ ,1’,‘3’,‘6’,‘7 ,与’) 的形式。 也就是将, 替换成了’,’ 的形式。
可以利用方法:

protected String toInParam(String str){
        //如果为空时,进行处理一下。
        if(str==null||"".equals(str)){
            return "('')";
        }
        // 前引号                  替换成后引号+','+前引号的形式                   后引号
        return "('"+str.replaceAll(",", "','")+"')";
    }

三.数组转换成in 参数

有的时候,传入的不是字符串,而是一个数组。 需要先将数组转换成字符串,用,进行分隔。 然后再利用上面的toInParam() 方法进行处理即可。

public String toString(int []arr){
    StringBuilder sb=new StringBuilder();
    for(int i=0;i<arr.length;i++){
      if(i==arr.length-1){
        sb.append(arr[i]);
      }else{
        sb.append(arr[i]+",");
      }
    }
    return sb.toString();
  }

四. 程序代码

@Test
    public void testB(){
        System.out.println("in形式为:"+toInParam("1,2,3,4,5"));
    }
    protected String toInParam(String str){
        if(str==null||"".equals(str)){
            return "('')";
        }
        return "('"+str.replaceAll(",", "','")+"')";
    }

谢谢!!!


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   19天前   43   0   0 java
  TEZNKK3IfmPf   2024年05月31日   54   0   0 java
TEZNKK3IfmPf