文档章节

Java字符串转Sql语句In格式工具方法

o
 osc_sejhgcp0
发布于 07/01 11:06
字数 242
阅读 27
收藏 0

精选30+云产品,助力企业轻松上云!>>>

    /**
     * 工具-字符串-转换Sql查询IN中使用的格式
     * 效果:a,b==>'a','b'
     * @param str
     * @return
     */
    public String strToDbin(String str){
        return String.format("'%s'", StringUtils.join(str.split(","),"','"));
    }
    /**
     * 工具-字符串-转换为Sql查询分组IN格式
     * 解决:Sql中in超过1000个报错问题 
     * @param field 列名,例如:ID
     * @param strIns 待拆分的字符串 a,b,c
     * @return field in('a') and field in('b') and field in('c')
     */
    public String strToSqlGroupIn(String field,String strIns) {
        int groupNum = 1;
        String groupInArr = new String();
        StringBuffer buffer=new StringBuffer();
        if(StringUtils.isNoneBlank(strIns)){
            String[] array=strIns.split(",");
            //数组总长度
            int len=array.length;
            //分组数
            int groupCount=len/groupNum;
            for(int k=0;k<groupCount;k++){
                groupInArr=new String();
                for(int i=(k*groupNum);i<(k*groupNum+groupNum);i++){
                    if(i>k*groupNum){
                        groupInArr+=",";
                    }
                    groupInArr+=array[i].trim();
                }
                if(k>0){
                    buffer.append(" and ");
                }
                buffer.append(String.format(" %s in(%s)",field,strToDbin(groupInArr)));
            }
            if(len%groupNum != 0){
                //未整除
                groupInArr=new String();
                //处理最后一组数据
                for(int j=(groupCount*groupNum);j<len;j++){
                    if(j>groupCount*groupNum){
                        groupInArr+=",";
                    }
                    groupInArr+=array[j].trim();
                }
                if(buffer.length()>0){
                    buffer.append(" and ");
                }
                buffer.append(String.format(" %s in(%s)",field,strToDbin(groupInArr)));
            }
        }
        return buffer.toString();
    }
o
粉丝 0
博文 48
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

SequoiaDB监控与开发实践分析

使用背景 公司近期上线了一个新应用,底层数据库采用了国产的分布式数据库 – SequoiaDB。 因为需要将 SequoiaDB 集群纳入到公司的整个监控体系中,所以需要对 SequoiaDB 的状态、性能指标等...

巨杉数据库
43分钟前
6
0
如何导入其他Python文件? - How to import other Python files?

问题: How do I import other files in Python? 如何在Python中导入其他文件? How exactly can I import a specific python file like import file.py ? 我究竟该如何导入特定的python文件......

fyin1314
52分钟前
22
0
小程序上传图片 返回的地址出现回车空格问题

不知怎么回事 ,今天写小程序上传图片 之前是没问题的,今天突然出现很多回车空格问题 那怎么办呢,处理呗 //去掉空格str = str.replace(/\ +/g,""); console.log(str);//"{'retmsg':'suc......

子枫Eric
今天
6
0
Spring Boot + Spring Security自定义用户认证

自定义认证过程 自定义认证的过程需要实现Spring Security提供的UserDetailService接口 ,源码如下: public interface UserDetailsService { UserDetails loadUserByUsername(String use...

心田已荒
今天
12
0
DateTime2与SQL Server中的DateTime - DateTime2 vs DateTime in SQL Server

问题: Which one: 哪一个: datetime datetime2 is the recommended way to store date and time in SQL Server 2008+? 是在SQL Server 2008+中存储日期和时间的推荐方法吗? I'm aware of......

富含淀粉
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部