精华内容
下载资源
问答
  • 前面提到了记录合并,有了合并需求肯定也会有分离需求,说到字符串分离,大家肯定会想到SPLIT函数,这个在.NET,Java和JS中都有函数,很可惜在SQL SERVER中没有,我们只能自己来写这么一个函数。 首先来分析一下...

    前面提到了记录合并,有了合并需求肯定也会有分离需求,说到字符串分离,大家肯定会想到SPLIT函数,这个在.NET,Java和JS中都有函数,很可惜在SQL SERVER中没有,我们只能自己来写这么一个函数。

    首先来分析一下怎么写这个函数,以之前合并的字符串为例,“张三,李四,王五,钱六,赵七,Tom,Amy,Joe,Leo”,现在要将此字符串按照“,”进行分离得到一组数据,现在可以得出这个函数传入变量有两个,一个是目标字符串,我们定义为@string,数据类型为nvarchar(500),选择nvarchar()是为了兼顾所有Unicode字符集,比如中文;另一个变量为分隔符,我们定义为@separator,数据类型为nvarchar(10),输出变量则定义为@array,一个单列列名为String,数据类型为nvarchar(500)的Table。

    下面来分析具体的拆分方法,以字符串“张三,李四,王五,钱六,赵七,Tom,Amy,Joe,Leo”为例,首先得找到第一个“,”,然后把“张三”截取出来,然后将目标字符串变成“李四,王五,钱六,赵七,Tom,Amy,Joe,Leo”,然后再找第一个“,”,把“李四”截取出来,依次类推,直到找不到“,”,有了这个思路,下面就直接实现,查找字符串在程序语言中一般用indexOf方法,截取一般用Substring方法,SQL SERVER中有SUBSTRING函数用来截取字符串,但是没有indexOf查找函数,取而代之的是CHARINDEX和PATINDEX函数,CHARINDEX用于完全匹配查找,而PATINDEX用于模糊匹配查找,根据我们的需求,选用CHARINDEX函数,整个SPLIT函数代码如下:

    CREATE FUNCTION [dbo].[SPLIT] 

    (

    -- Add the parameters for the function here

    @string nvarchar(500),  

        @separator nvarchar(10) 

    )

    RETURNS @array TABLE(String nvarchar(500)) 

    AS

    BEGIN

    -- Declare the return variable here

    DECLARE @separatorIndex int,@tempString nvarchar(500),@tagString nvarchar(500)

    -- Add the T-SQL statements to compute the return value here

        SET @tagString=@string

    SET @separatorIndex=CHARINDEX(@separator,@tagString)  

        WHILE(@separatorIndex<>0)

    BEGIN

            SET @tempString = SUBSTRING(@tagString,1,@separatorIndex-1)  

            INSERT INTO @array(String) VALUES(@tempString)  

            SET @tagString = SUBSTRING(@tagString,@separatorIndex+1,LEN(@tagString)-@separatorIndex)  

            SET @separatorIndex=CHARINDEX(@separator,@tagString)  

        END  

        SET @tempString = @tagString  

        IF (LEN(@tempString)>0)  

            INSERT INTO @array(String) VALUES(@tagString)  

    -- Return the result of the function

    RETURN

    END

    GO

    接着测试一下:

    SELECT * FROM dbo.SPLIT(N'张三,李四,王五,钱六,赵七,Tom,Amy,Joe,Leo',',')

    可以得到如下结果:

    image

     

    本文转自:http://www.cnblogs.com/leolis/p/3978569.html

    转载于:https://www.cnblogs.com/zuqing/p/4693051.html

    展开全文
  • 出现的问题 ...经过反复的检查,发现问题在于后台返回的response的Content-type为text,那么swagger就会他当成一个字符串进行展示。就没有看起来很清爽的画面了。想知道怎么转换吗,想必已经猜到了,...

    出现的问题

    当使用SpringBoot做后台架构,采用Swagger做接口插件,会遇到响应的参数不按JSON显示,而是一个字符串,而且字符串还带有反斜杠,看起来贼不爽。见下图:
    在这里插入图片描述

    出现问题的原因

    经过反复的检查,发现问题在于后台返回的response的Content-type为text,那么swagger就会将他当成一个字符串进行展示。就没有看起来很清爽的画面了。想知道怎么转换吗,想必已经猜到了,对就是处理响应体。下面介绍两种方法设置响应体的Content-type。

    问题解决

    1、局部设置响应体

    局部设置很简单,就是在Controller上的 @RequestMapping注解里增加一个produces 属性,见下图:
    在这里插入图片描述

    2、全局设置响应体

    一个一个的设置响应体是挺麻烦,有局部方法,超强的SpringBoot当然会有全局设置的方法了。创建一个类,实现WebMvcConfigurer类,重写configureContentNegotiation方法就行了。具体骚操作看如下代码:

    public class WebMvcConfig implements WebMvcConfigurer{
        @Override
        public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        //MediaType.APPLICATION_JSON 设置的是application/json ,想要设置其他的可以到MediaType类里面去找相关的常量哦
        configurer.defaultContentType(MediaType.APPLICATION_JSON);
        }
    }
    

    到这里我们的问题就解决了哦,来看看添加Content-type后的swagger显示是什么样子吧:
    在这里插入图片描述
      怎么样,是不是能解决你的问题呢?如果有帮助解决问题,麻烦点赞关注哦,时时更新小问题解决方法。关注不迷路--------
      有任何问题都可以在评论区或者私聊!

    展开全文
  • REST的重要概念REST全称是Representational State Transfer,中文意思是表征性状态转移。RESTful是指具有REST表征的web架构风格,并非必须...当REST架构的约束条件作为一个整体应用时,生成一个可以扩展到大量客...

    0525fa510cb989847bff4bfebc7589bb.png

    REST的重要概念

    REST全称是Representational State Transfer,中文意思是表征性状态转移。RESTful是指具有REST表征的web架构风格,并非必须遵守的规则。

    REST分离了API的结构和逻辑,主要应用于客户端和服务器交互类的软件。基于这种风格设计的软件更加简洁,更有层次,更易于实现缓存等机制。当REST架构的约束条件作为一个整体应用时,将生成一个可以扩展到大量客户端的应用程序。它还降低了客户端和服务器之间的交互延迟。统一界面简化了整个系统架构,改进了子系统之间交互的可见性。REST简化了客户端和服务器的实现,而且对于使用REST开发的应用程序更加容易扩展。

    Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答。

    另一个重要的 REST 原则是分层系统,分层系统指组件无法了解它与之交互的中间层以外的组件。分层系统限制整个系统的复杂性,保证底层的独立性。

    这里大家可以关注一下我的个人专栏《PHP进阶集中营》,每天会给大家即时分享一个最新的php技术资讯,有优秀的PHP技术内容,也欢迎分享在我的专栏。

    PHP进阶集中营zhuanlan.zhihu.com
    dcf43fa59c725aeacab34f79948c103e.png

    RESTful风格的7种具体特征:

    1. 采用URI标识资源

    RESTful Web API采用面向资源的架构,所以首先需要考虑的是有哪些资源可供操作。一个资源必须具有一个或者多个标识,在restful中使用URI作为资源的标识。作为资源标识的URI最好具有“可读性”,这用更容易被使用。除此之外,标识资源的URI还应该具有“可寻址性(Addressability)”。也就是说,URI不仅仅指明了被标识资源所在的位置,而且通过这个URI可以直接获取目标资源。(URI具有URL和URN两种主要的表现形式,只有URL具有可寻址性,所以我们最好采用一个URL作为资源的标识。)

    2. 使用“链接”关联相关的资源

    REST是使用标准的HTTP方法来操作资源的,但仅仅因此就理解成带CURD的Web数据库架构就太过于简单了。这种反模式忽略了一个核心概念:"超媒体即应用状态引擎(hypermedia as the engine of application state)"。 超媒体是什么?当你浏览Web网页时,从一个连接跳到一个页面,再从另一个连接跳到另外一个页面,就是利用了超媒体的概念:把一个个把资源链接起来。要达到这个目的,就要求在表述格式里边加入链接来引导客户端。如使用<a>的href属性关联资源、用url来链接项目所有者和项目地址。

    3. 使用统一的接口

    统一接口包含了一组受限的预定义的操作,不论什么样的资源,都是通过使用相同的接口进行资源的访问。接口应该使用标准的HTTP方法如GET,PUT和POST,并遵循这些方法的语义。

    4. 使用标准的HTTP方法

    7个常用的HTTP方法:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS。首先GET、HEAD和OPTIONS这三个HTTP方法旨在发请求以获取所需的信息。其他四种(POST、PUT、PATCH和DELETE),旨在针对目标资源作添加、修改和删除操作。具体如下:

    GET:从服务器取出资源(一项或多项)。

    POST:在服务器新建一个资源。

    PUT:在服务器更新资源(客户端提供改变后的完整资源)。

    PATCH:在服务器更新资源(客户端提供改变的属性)。

    DELETE:从服务器删除资源。

    HEAD:获取资源的元数据。

    OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。[旨在发送一种“探测”请求以确定针对某个目标地址的请求须具有怎样的约束,然后根据其约束发送真正的请求。(“跨域资源”的预检 )]

    5. 安全性与幂等性

    GET、HEAD和OPTIONS均被认为是安全的方法,因为它们旨在实现对数据的获取,其它4个HTTP方法,由于它们会导致服务端资源的变化,所以被认为是不安全的方法。

    幂等性在这里是指服务器状态的变化。如果一个方法重复执行多次,产生的效果是一样的,就说该资源是幂等方法 (在网速不够快的情况下,客户端发送一个请求后不能立即得到响应,由于不能确定请求是否被成功提交,所以它有可能会再次发送另一个相同的请求,幂等性决定了第二个请求是否有效。)七种HTTP方法中只有POST是一个非幂等的方法。由于DELETE和PATCH请求操作的是现有的某个资源,所以它们是幂等方法。对于PUT请求,只有在对应资源不存在的情况下服务器才会进行添加操作,否则只作修改操作,所以它也是幂等方法。 因为POST是进行添加操作,如果服务器接收到两次相同的POST操作,将导致两个相同的资源被创建,所以POST是一个非幂等方法。

    6. 支持多种资源表示方式

    资源和资源表示是两个不同的概念,资源表示是资源的表现形式。对于Web来说,目前具有两种主流的数据结构,XML和JSON,它们也是资源的两种主要的呈现方式。在设计Web API的时候,应该支持不同的资源表示。对于请求提交的资源,我们一般利用请求的Content-Type报头携带的媒体类型来判断其采用的表示类型。对于响应资源表示类型的识别有两种方式,一种是在URI中包含资源标识类型,另一种是采用“内容协商”,根据请求相关报头来判断它所希望的资源表示类型。(比如“Accept”和“Accept-language”报头可以体现请求可以接受的响应媒体类型和语言。)两者的差别是,前者具备浏览器兼容性,后者更智能。

    7. 无状态性

    RESTful只要维护资源的状态,而不需要维护客户端的状态。对于它来说,每次请求都是全新的,它只需要针对本次请求作相应的操作,不需要将本次请求的相关信息记录下来以便用于后续来自相同客户端请求的处理。

    RESTful设计误区:

    1. URI中包含动词。因为"资源"表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在HTTP协议中。

    2. URI中含有版本号。因为不同的版本,可以理解成同一种资源的不同表现形式,所以应该采用同一个URI。版本号可以在HTTP请求头信息的Accept字段中进行区分

    RESTful架构与其他架构的区别

    SOAP WebService

    WebService是一种跨编程语言和跨操作系统平台的远程调用技术。

    WebService通过HTTP协议发送请求和接受结果时采用XML格式封装,并增加了一些特定的HTTP消息头,这些特定的HTTP消息头和XML内容格式就是SOAP协议。

    效率和易用性

    SOAP由于各种需求不断扩充其本身协议的内容,导致在SOAP处理方面的性能有所下降。同时在易用性方面以及学习成本上也有所增加。

    RESTful由于其面向资源接口设计以及操作抽象简化了开发者的不良设计,同时也最大限度的利用了HTTP最初的应用协议设计理念。

    安全性

    RESTful对于资源型服务接口来说很合适,同时特别合适对于效率很高,但是对于安全要求不高的场景。

    SOAP的成熟性可以给需要提供给多开发语言的,对于安全性要求比较高的接口设计带来便利。

    PHP进阶学习笔记、面试;文档、视频资源免费获取shimo.im
    375e24f4b5d0ae32f8d036dd78f2bd14.png
    展开全文
  • 在http/middleware目录下加一中间件并在路由中设为全局,每次有POST提交时,就数据MD5成字符串,然后检查redis中是否存在相同的数据,有则拒绝此次请求,没有就把字符串存入redis使用下次请求校验public funct.....

    原创 一筐大白菜啊 最后发布于2019-12-11 09:27:21 阅读数 26 收藏

    展开

    THINKPHP5 前后端分离项目,怎样防鼠标双击产生的重复提交?

    在http/middleware目录下加一个中间件并在路由中设为全局,每次有POST提交时,就将数据MD5成字符串,然后检查redis中是否存在相同的数据,有则拒绝此次请求,没有就把字符串存入redis使用下次请求校验

    public function handle(Request $request, \Closure $next)

    {

    // 只检查POST数据

    if ($request->method() == 'POST') {

    $post = $request->post();

    $post['time'] = time();

    // 转md5

    $key = "checkRepeat:" . md5(json_encode($post));

    //此限制只阻止同一秒内产生的重复提交,并不阻止每隔一秒发送一次的重复提交

    if (Redis::get($key)) {

    die("正在处理中,请勿重复提交!");

    }

    // 缓存时间(10秒)

    Redis::set($key, 1, 10);

    }

    return $next($request);

    }

    ————————————————

    版权声明:本文为CSDN博主「一筐大白菜啊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/sphinx1122/article/details/103477261

    展开全文
  • 项目实例前端部分使用基于Angular的Ionic框架(TypeScript),使用Spring Boot(Java)来...Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器会生成一个Token并此Token,返...
  • 题目: 对D,a,F,B,c,A,z这个字符串进行排序,要求其中所有小写字母都排在大写字母的前面,但小写字母内部和大写字母内部不要求有序。比如经过排序之后为a,c,z,D,F,B,A,这个如何来实现呢?如果字符串...
  • 它接受一个逗号分隔的对象表,如以下示例:x = 1 y = 2 z = 3打印(\u201C值\u201D,x, y, z) #打印结果值是1 2 3在上面的例子中,每个对象的str()函数调用生成输出字符串。这些输出字符串将被连接和分离空间来得到最终...
  • 9.2.3 判断两个字符串是否相等 223 9.2.4 判断字符串的开头和结尾 225 9.2.5 分割字符串 225 9.2.6 在字符串中查找子字符串或字符 226 9.2.7 替换字符串中的内容 226 9.2.8 String对象——磐石刻字 227 9.3 ...
  • 9.2.3 判断两个字符串是否相等 223 9.2.4 判断字符串的开头和结尾 225 9.2.5 分割字符串 225 9.2.6 在字符串中查找子字符串或字符 226 9.2.7 替换字符串中的内容 226 9.2.8 String对象——磐石刻字 227 9.3 ...
  • 9.2.3 判断两个字符串是否相等 223 9.2.4 判断字符串的开头和结尾 225 9.2.5 分割字符串 225 9.2.6 在字符串中查找子字符串或字符 226 9.2.7 替换字符串中的内容 226 9.2.8 String对象——磐石刻字 227 9.3 ...
  • 如果用户键入get key,则:拆分用户输入,这样就可以分离一个变量,它等于“key”。在1.使用内置在Python字符串中的split方法。例如:command_words=用户_命令.拆分(“”)这把用户键入的内容拆分为一个列表。每...
  • 1.3怎么写HLSL着色器

    千次阅读 2007-02-13 17:15:00
    1.3怎么写HLSL着色器我们可以直接把HLSL着色器代码作为长串字符串编写进我们的应用程序源文件中,但是,更加方便和模块化的方法是把着色器的代码从应用程序代码中分离出来。因此,我们着色器代码单独保存为文本...
  • 该系统用javascrit脚本在客户端封装表单里面的数据并这些数据封装成xml字符串,然后发送这个字符串给服务器。在接收到送服务器端发送来的xml之后,系统用javascript脚本解析xml然后填写到表单中去。他们可以按时的...
  • 以往开发多语言页面时,往往使用properties保存字符串资源,但是页面通常都没有什么变化。而Tapestry可以通过不同的Html为不同的国家指定不同的页面。 Wicket吸收了Tapestry的部分内容,但我最喜欢的就是,它...
  • class StringField(Field): #字符串需要一个长度属性 def __init__(self,name,length=32,fieldname=None,pk=False,unique=False,default=None,nullable=True,index=False): self....
  • AsyncAPI React SDK 在模板中使用React的官方SDK AsyncAPI React SDK是组组件/功能,可React用作渲染引擎。... 它遍历模板结构中的每元素,并其转换为纯字符串。 此外,还prop children转换
  • JAVA 正则表达式

    热门讨论 2010-01-15 11:16:37
    个字符串。正则表达式作为一个模板,某个字符模式与所搜索的字符串进行匹配。 自从 jdk1.4 推出 java.util.regex 包,就为我们提供了很好的 JAVA 正则表达式应用平台。 因为正则表达式是一个很庞杂的体系,...
  • C#基类库(苏飞版)

    2014-05-16 23:11:45
    主要功能:整GridView的数据导出到Excel中关增加一个效果线做美化 14.分词辅助类 SegList C#SegList分词辅助类,帮助类 15.汉字转拼音 EcanConvertToCh C#汉字转成拼音 PinYin 取汉字拼音的首字母,只要你输入...
  • wxPython学习手册

    热门讨论 2014-04-19 08:01:58
    10.2.3 如何将一个菜单项与一个快捷键关联起来? 306 使用助记符快捷方式 308 使用加速器快捷方式 309 10.2.4 如何创建一个复选或单选开关菜单项? 310 10.3 进一步构建菜单 313 10.3.1 如何创建一个子菜单? 313 ...
  • 的第一个标准是年月由美国国家标准化组织公布的 数据库语言 简称 年国际标准化组织也通过了这一标准。以后通过对 的不断修改和完善,于年第二次公布了标准 年又公布了标准 即 。最新的标准是 (也称 年作为 ...
  • java 面试题 总结

    2009-09-16 08:45:34
    Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应...
  • APKTool批处理版l

    2011-10-26 13:58:55
    一般而言,一个编写规范的Android程序,会把所有字符串资源都分离出来,放在values的strings.xml文件中,values目录中存放的是默认语言字符串资源(一般为英文)。APK程序在处理字符串资源时会先判断语言环境,然后...
  • 8.3.4 使用通配符找到某个字符串在另一个字符串中的起始位置 223 8.3.5 检测字符串相似度 224 8.3.6 获取字符串最左和最右部分 224 8.3.7 检测字符串中的字符数或者字节数 225 8.3.8 把字符串的一部分替换...
  • 自动登录的原理就是,用户第一登录时会有一个token为null,如果登录成功,那么就在本地存一个token,关掉应用(不是退出登录)再次打开的时候,判断token是否正确,如果正确就自动登录。 这里本地存放token使用了...

空空如也

空空如也

1 2 3
收藏数 41
精华内容 16
关键字:

怎么将一个字符串分离