关于java:GWA2吉娃兔🐇升级增加搜索模糊语法支持

一些事件一旦开始往往无奈以本人预期的形式完结。
比方始于2022年2月24日的俄罗斯侵略乌克兰的和平,入侵者原打算三天之内打垮被侵略的乌克兰现政权,没想到快三个月过来了,和平依然没有完结。反而和平的强弱单方开始逆转。倔强的乌克兰人民勇敢抵制精力正在逐步取得更多国家的正义反对( https://ufqi.com/news/ulongpa…一个新的小强国正在挣扎中崛起 )。显然入侵者无奈以本人的预期的形式来完结这场和平。

与毁坏作恶者相同,一些建设者的踊跃我的项目也是一旦开始了,就继续一直的改良、降级,毁灭一个又一个bug,减少一层又一层防护,原来世界能够变得更加美妙,比方GWA2 吉娃兔我的项目。最好的版本永远是下一个发行版本。

GWA2吉娃兔自从2022年2月份进行了多过程多线程改良降级以来( GWA2 Java 减少多线程数据共享通道 globalData, https://ufqi.com/blog/gwa2-ja… ),又陆续进行了一些优化,兹记录如下,以备察访。

  • Page Navigator 页面浏览减少对含糊搜寻的反对
    Page Navigator 页面浏览模块是所有网络应用开发中最高频应用的性能之一。咱们也对此进行了进行设计和代码实现。随着多年来大量的软件工程我的项目实际,咱们陆续开发了独有的 PNSK 和 OPPKNSK 功能设计,实现了从浏览器参数设置到数据库SQL查问语句组装的全流程反对。
    PNSK , Page Navigator Search Key, 页面浏览搜寻关键词,
    OPPNSK, Operator of Page Navigator Search Key. 页面浏览搜寻关键词的操作符.

给定页面申请参数如,&pnskfielda=abc&oppnskfielda=contains ,
将通过 PageNavi 组装成如下数据库SQL查问语句:
…. and fielda like ‘%abc%’ …

这次改良降级的包含,如果给定页面申请参数中包含了空格或者问号?/?等含糊查问的搜寻语法时,PageNavi 可能辨认这种语法并做进一步的解决,使之可能转化为相应的数据库SQL查问语句。

给定页面申请参数如,&pnskfielda=abc%20efg&oppnskfielda=contains ,
将通过 PageNavi ,减少对含糊查问的反对,组装成如下数据库SQL查问语句:
…. and fielda like ‘%abc%efg%’ …

对含糊查问语法的反对,最早的想法和实现是在 gMIS吉密斯的改良降级中,当初的写法为:
$gtbl->set($field, “%”.str_replace(‘ ‘,’%’,$v).”%”);

改良后的写法将应用 _parseBlank 来对立代替:
$v = $this->_parseBlank($fieldopv, $v);

在新减少的 _parseBlank 中束缚了目前只针对 contains 和 notcontains 这连个 oppnsk 进行如上操作,同时也通过全局配置开关 GWA2_Is_Parse_Blank 进行管制,能够对该性能进行停用。

除了 gMIS吉密斯之外,这项降级改良,将陆续利用在 UfqiWork有福工坊 和 UfqiFina有福金融 的搜寻功能模块中。

  • 减少对传统 Base64 编解码的封装
    作为编解码的辅助设施,在 GWA2吉娃兔的设计中,默认的工具是 Base62x, 她比原生的 Base64 有更好的适应性( https://ufqi.com/dev/base62x )。因为 Base62x 推出工夫较新,在GWA2吉娃兔开发的网络应用中,出于对接其余老旧零碎的须要,仍须要兼容传统 Base64 的编解码解决。为此,咱们改良了 inc/Zeea.class, 减少了相应的办法:

inc/Zeea.base64Encode 和 inc/Zeea.base64Decode

比方,咱们在早先的一个我的项目中须要对接 Aliyun阿里云的一个在线服务,其中的API接口中,须要封装参数,为平安起见,在API接口申请参数时,应用 URLEncode对参数进行编解码,其中的不平安字符须要做替换解决:

private String specialUrlEncode(Object value) throws Exception {
return java.net.URLEncoder.encode((String)value, “UTF-8”)
.replace(“+”, “%20”)
.replace(“*”, “%2A”)
.replace(“%7E”, “~”);
}

如果应用较新的 Base62x 来进行 URLEncode的话,则不用如此繁琐地进行多个不平安字符的替换 ( https://www.researchgate.net/… )。 因而,倡导更多的开发者在面向未来的网络应用开发中,全面应用 Base62x 取代传统的 Base64 .

  • 减少对JSON/CSV格局数据的转换解决
    GWA2吉娃兔 在最近降级改良中,在 Hanjst 模板解决的服务器端,减少了两个解决格局数据的办法,别离是解决JSON数据的 json2Map 和解决CSV数据的 csv2Map . 这两个办法能够不便对外解决数据交换。

数据转换解决背地的反对类库是 Google Gson . 相应的类库包曾经随着 GWA2吉娃兔打包在一起。

本文首发地址:-R/q2Sa , https://ufqi.com/blog/gwa2-fu… 。

  • GWA2吉娃兔
    -GWA2 吉娃兔 是”通用网络应用架构( General Web Application Architeture, https://ufqi.com/dev/gwa2/ )”,基于 -GWA2 能够轻便构建各种网络应用程序,
    包含简单的在线购物商城、在线医疗、在线教育、 游览交易平台、社群或者社交网站和新闻资讯网站等,
    也包含各种企事业单位网上门户,在线交互及服务作业系统等.
    还能够包含为NativeApp做服务器端反对, 甚至是WebApp的全副.
    -GWA2 是为数不多的反对跨开发语言的利用框架,目前反对 -Java, -PHP, -Perl, -Aspx and -Python .

-GWA2 is a “General Web Application Architecture” and based on -GWA2 developers can easily build a variety of network applications,
including complex online shopping malls, online medical services, online teaching, travel trading platforms, community or social networking sites and news information sites, etc.
Also the applications include various online portals of enterprises and institutions, online interaction and service operations systems.
Moreover it contains server-side support for Native App, or even all of the WebApp.
-GWA2 is one of the web frameworks which provide cross-language support for -Java, -PHP, -Perl, -Aspx and -Python at present.

-GWA2 is E.A.S.Y
Easy Along, Swift Yield
轻松启动, 疾速产出.

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理