首页 文章 精选 留言 我的

精选列表

搜索[轻量版],共10000篇文章
优秀的个人博客,低调大师

sqltoy-orm 4.13.8 发版

开源地址: github:https://github.com/chenrenfei/sagacity-sqltoy gitee:https://gitee.com/sagacity/sagacity-sqltoy idea 插件(可直接在idea中检索安装): https://github.com/threefish/sqltoy-idea-plugins 更新内容 1、sql执行时加上了签名注释,目前以sql id为签名,便于运维通过数据库来跟踪sql的归属 以mysql为例: 在sql开始部位增加了id,便于运维通过数据库日志快速定位问题sql的归属 ```sql /* id=qstart_order_search */ select ORDER_ID, DEVICE_TYPE from xxx ``` 感谢网名cmd的用户反馈此意见! 2、升级spring和springboot的版本依赖到5.2.8 和 2.3.2 版本 3、quickvo增加一个min版本,不支持yml配置,减少文件大小 快速了解 sqltoy-orm: sqltoy是全新一代的ORM框架,兼顾jpa对象式操作的优势,同时极大增强了查询功能,辅以科学的sql编写模式、巧妙的缓存翻译集成、极致的分页优化以及针对大规模数据下的分库分表、超复杂场景下的mongodb、elastic、clickhouse组合应用! sqltoy给你带来了多种主键策略,除常规的UUID、sequence、identity外,还包含雪花算法和基于redis产生有规则的业务主键等。 sqltoy还提供了针对统计分析的:数据旋转、无限级分组计算、同比环比等来减少开发者写复杂sql。 sqltoy在很多方面提供了极为实用的方法,如:树形表处理、isUnique、findTop、getRandomResult、updateFetch等等 sqltoy不走jooq全对象式、mybatis全sql式这种不是天就是地的极端路子,紧贴项目实战发展起来的框架,让各自技术以合理的方式应用于合理的地方! 简要举例介绍(因篇幅问题部分举例): JPA式的CRUD,但规避了其不足,提供了默认的SqlToyCRUDService(简单的则无需写service方法) 和 SqlToyLazyDao(开发无需自己写Dao,只需要写Service业务逻辑),可以了解类似于update、updateAll、saveOrUpdate等内在逻辑,减少了数据库交互,考虑了高并发和业务对象变更的特征! @Autowired private SqlToyCRUDService sqlToyCRUDService; //基于对象保存 sqlToyCRUDService.save(staffInfo); //基于对象更新(字段值为null的不会参与变更) sqlToyCRUDService.update(staffInfo); //深度变更,全部字段都参与变更 sqlToyCRUDService.updateDeeply(staffInfo); //基于对象更新(制定强制修改的字段) sqlToyCRUDService.update(staffInfo,new String[]{"staffName","onDuty"}); //基于对象更新 sqlToyCRUDService.saveOrUpdate(staffInfo); //加载对象 sqlToyCRUDService.load(new StaffInfoVO("S190715009")); //加锁获取对象 sqlToyCRUDService.load(new StaffInfoVO("S190715009"),LockMode.UPGRADE); //判断对象是否唯一 sqlToyCRUDService.isUnique(staffInfo, "staffCode"); //delete\deleteAll\updateAll\loadAll 等等不一一写完 单表等简单的查询和变更操作,提供了链式操作 //单表对象查询,直接传参模式 List<StaffInfoVO> staffVOs = sqlToyLazyDao.findEntity(StaffInfoVO.class, EntityQuery.create().where("#[staffName like ?] #[ and status=?]").values("陈", 1).lock(LockMode.UPGRADE) .orderBy("staffName").orderByDesc("createTime")); //单表查询,对象传参模式 List<StaffInfoVO> staffVOs = sqlToyLazyDao.findEntity(StaffInfoVO.class, EntityQuery.create().where("#[staffName like :staffName] #[ and status=:status]") .values(new StaffInfoVO().setStatus(1).setEmail("test3@aliyun.com"))); //代码中链式查询并删除 Long deleteCount = sqlToyLazyDao.deleteByQuery(StaffInfoVO.class, EntityQuery.create().where("status=:status").values(new StaffInfoVO().setStatus(1))); //链式变更 Long updateCount = sqlToyLazyDao.updateByQuery(StaffInfoVO.class, EntityUpdate.create().set("staffName", "张三").where("staffName like ? and status=?").values("陈", 1)); 更强大的查询,sqltoy强调复杂查询建议放置于xml中跟代码分离(但是可以写在代码中的),不要见xml就反,请深入了解之后再反! //sqltoy统一的规则就是直接传递sql语句或者对应的sqlId,并不是说sql只能写在xml中(推荐但不绝对) findBySql(final String sqlOrSqlId, final String[] paramsNamed, final Object[] paramsValue, final Class<T> voClass) //嫌弃上面的格式化传参也可以使用这样链式查询 sqlToyLazyDao.findByQuery(new QueryExecutor("sqltoy_order_search").names("orderId", "authedOrganIds") .values(null, authedOrgans).resultType(DeviceOrderInfoVO.class)); sqltoy提供了最简洁的动态sql编写 我们对比一下mybatis的实现(很简单的sql写的如此让人不愿意写!): 缓存翻译,利用缓存减少关联查询,简化sql同时大幅提升效率 极致分页优化 旋转数据并进行环比计算

优秀的个人博客,低调大师

sqltoy-orm 4.13.7 发版

开源地址: github:https://github.com/chenrenfei/sagacity-sqltoy gitee:https://gitee.com/sagacity/sagacity-sqltoy idea 插件(可直接在idea中检索安装): https://github.com/threefish/sqltoy-idea-plugins 更新内容 1、修复在代码中动态设置缓存翻译的bug,通过quickstart项目中演示用法,参见StaffInfoDao public PaginationModel<StaffInfoVO> findStaff(PaginationModel<StaffInfoVO> pageModel, StaffInfoVO staffInfoVO) { // sql可以直接在代码中编写,复杂sql建议在xml中定义 // 单表entity查询场景下sql字段可以写成java类的属性名称 // 单表查询一般适用于接口内部查询,面向页面很少存在单表查询(除非做ETL归集) String sql = "#[staffName like :staffName]#[and createTime>=:beginDate]#[and createTime<=:endDate]"; return findEntity(StaffInfoVO.class, pageModel, EntityQuery.create().where(sql).values(staffInfoVO) // 字典缓存必须要设置cacheType // 需设置keyColumn构成select keyColumn as column模式 .translates(new Translate("dictKeyName").setColumn("sexTypeName").setCacheType("SEX_TYPE") .setKeyColumn("sexType")) .translates(new Translate("organIdName").setColumn("organName").setKeyColumn("organId"))); } 2、规范了FileUtil工具类,为单元测试时提供一些必要的辅助工具 3、对update(Entity) 和update(Entity,String[] forceUpdateProps) 等类似方法用update(Entity,String...forceUpdateProps)进行了合并,减少部分代码冗余 4、重新构建了sqltoy-quickstart演示项目,参见sagacity-sqltoy/trunk/sqltoy-quickstart 快速了解 sqltoy-orm: sqltoy是全新一代的ORM框架,兼顾jpa对象式操作的优势,同时极大增强了查询功能,辅以科学的sql编写模式、巧妙的缓存翻译集成、极致的分页优化以及针对大规模数据下的分库分表、超复杂场景下的mongodb、elastic、clickhouse组合应用! sqltoy给你带来了多种主键策略,除常规的UUID、sequence、identity外,还包含雪花算法和基于redis产生有规则的业务主键等。 sqltoy还提供了针对统计分析的:数据旋转、无限级分组计算、同比环比等来减少开发者写复杂sql。 sqltoy在很多方面提供了极为实用的方法,如:树形表处理、isUnique、findTop、getRandomResult、updateFetch等等 sqltoy不走jooq全对象式、mybatis全sql式这种不是天就是地的极端路子,紧贴项目实战发展起来的框架,让各自技术以合理的方式应用于合理的地方! 简要举例介绍(因篇幅问题部分举例): JPA式的CRUD,但规避了其不足,提供了默认的SqlToyCRUDService(简单的则无需写service方法) 和 SqlToyLazyDao(开发无需自己写Dao,只需要写Service业务逻辑),可以了解类似于update、updateAll、saveOrUpdate等内在逻辑,减少了数据库交互,考虑了高并发和业务对象变更的特征! @Autowired private SqlToyCRUDService sqlToyCRUDService; //基于对象保存 sqlToyCRUDService.save(staffInfo); //基于对象更新(字段值为null的不会参与变更) sqlToyCRUDService.update(staffInfo); //深度变更,全部字段都参与变更 sqlToyCRUDService.updateDeeply(staffInfo); //基于对象更新(制定强制修改的字段) sqlToyCRUDService.update(staffInfo,new String[]{"staffName","onDuty"}); //基于对象更新 sqlToyCRUDService.saveOrUpdate(staffInfo); //加载对象 sqlToyCRUDService.load(new StaffInfoVO("S190715009")); //加锁获取对象 sqlToyCRUDService.load(new StaffInfoVO("S190715009"),LockMode.UPGRADE); //判断对象是否唯一 sqlToyCRUDService.isUnique(staffInfo, "staffCode"); //delete\deleteAll\updateAll\loadAll 等等不一一写完 单表等简单的查询和变更操作,提供了链式操作 //单表对象查询,直接传参模式 List<StaffInfoVO> staffVOs = sqlToyLazyDao.findEntity(StaffInfoVO.class, EntityQuery.create().where("#[staffName like ?] #[ and status=?]").values("陈", 1).lock(LockMode.UPGRADE) .orderBy("staffName").orderByDesc("createTime")); //单表查询,对象传参模式 List<StaffInfoVO> staffVOs = sqlToyLazyDao.findEntity(StaffInfoVO.class, EntityQuery.create().where("#[staffName like :staffName] #[ and status=:status]") .values(new StaffInfoVO().setStatus(1).setEmail("test3@aliyun.com"))); //代码中链式查询并删除 Long deleteCount = sqlToyLazyDao.deleteByQuery(StaffInfoVO.class, EntityQuery.create().where("status=:status").values(new StaffInfoVO().setStatus(1))); //链式变更 Long updateCount = sqlToyLazyDao.updateByQuery(StaffInfoVO.class, EntityUpdate.create().set("staffName", "张三").where("staffName like ? and status=?").values("陈", 1)); 更强大的查询,sqltoy强调复杂查询建议放置于xml中跟代码分离(但是可以写在代码中的),不要见xml就反,请深入了解之后再反! //sqltoy统一的规则就是直接传递sql语句或者对应的sqlId,并不是说sql只能写在xml中(推荐但不绝对) findBySql(final String sqlOrSqlId, final String[] paramsNamed, final Object[] paramsValue, final Class<T> voClass) //嫌弃上面的格式化传参也可以使用这样链式查询 sqlToyLazyDao.findByQuery(new QueryExecutor("sqltoy_order_search").names("orderId", "authedOrganIds") .values(null, authedOrgans).resultType(DeviceOrderInfoVO.class)); sqltoy提供了最简洁的动态sql编写 我们对比一下mybatis的实现(很简单的sql写的如此让人不愿意写!): 缓存翻译,利用缓存减少关联查询,简化sql同时大幅提升效率 极致分页优化 旋转数据并进行环比计算

优秀的个人博客,低调大师

sqltoy-orm 4.13.2 发版

开源地址: github:https://github.com/chenrenfei/sagacity-sqltoy gitee:https://gitee.com/sagacity/sagacity-sqltoy idea 插件(可直接在idea中检索安装): https://github.com/threefish/sqltoy-idea-plugins 更新内容 1、修复BeanUtil 将16位数字字符串转Long类型精度问题,场景主要是主键使用雪花算法且类型是数字并转java成Long类型时出现(一般16位以上数字需转BigInteger类型)。 感谢:智客软件反馈此问题!

优秀的个人博客,低调大师

Go Search Extension 0.2 版发布

Go Search Extension是一款可以在浏览器地址栏快速、方便、高效地搜索 Go 文档的浏览器插件,支持 Chrome/Firefox/Edge 。类似于 Rust 社区的Rust Search Extension。 下载地址: Chrome Web Store Firefox Microsoft Edge 主要功能: 搜索 Go 标准库文档 可通过关键词搜索 package 、func 、interface,快速查看其定义和描述,也可选中并跳转到文档页面查看具体说明。 搜索热门的 package 可通过搜索 package 名称获得 GitHub 上 star 数top 20k的 go 项目文档相关的信息,包括最新版本号和 package 的说明。 默认搜索关键字的时候,搜索结果会混合标准库文档和第三方库的结果。可以在关键字前加一个前缀!(英文叹号)只搜索第三方库。 快速跳转 git 仓库 在搜索 Top 20K 第三方库的时候,在关键字前拼接两个!!就可跳转到该 package 的 git 仓库地址,非常方便!当然目前只支持 Github 、Gitlab 、Bitbucket 、Gitea,Gitee 等的 git 仓库。 Awesome go 搜索 Github 上维护了一个非常全面的Awesome Golang的资源列表,我把这些资源全部索引下来了。直接在地址栏输入前缀$+关键字即可搜索。比如输入$webassembly,就可以快速检索 Awesome golang 中和 webassembly 有关的内容。 内置命令 跟 Rust 版本的插件一样,Go 版本也提供了丰富的命令,比如: :help- 查看使用帮助 :book- 查看 go 社区免费的电子书(主要是英文书) :conf- 查看 go 社区所有的 conference :meetup- 查看 go 社区全世界各地的 meetup :social- 查看 go 各种社交账号地址 :history- 查看本地的搜索记录 支持快捷键操作 可通过追加或删除-(英文减号)对结果进行快速翻页。通过 tab 可以选择结果,回车可跳转到文档详细说明页面。 使用方法: 在浏览器搜索栏里,输入关键字go加空格,再输入关键字即可看到相关的结果,选中结果敲击回车可跳转到搜索结果页面。 Github 地址:https://github.com/huhu/go-search-extension 欢迎大家下载体验,有 bug 或者建议欢迎提 issue !

优秀的个人博客,低调大师

QEMU 5.0 稳定版发布

QEMU 5.0.0 已正式发布,更新亮点包括: 支持通过 virtiofsd 将主机文件系统目录传递给访客 支持对在 QEMU D-Bus 上运行的外部进程进行实时迁移 支持针对 main/”built-in” guest RAM 使用 Memory Backend(虚拟内存的后端) block: 支持通过块设备作业压缩备份镜像 block: qemu-img: ‘measure’ 命令现在支持 LUKS 镜像 block: 实验性支持 qemu-storage-daemon,并提供对 QEMU block-layer/QMP 功能的访问,如块设备作业或内置的 NBD 服务器,无需启动一个完整的虚拟机 ARM: 支持以下架构功能 ARMv8.1 VHE/VMID16/PAN/PMU ARMv8.2 UAO/DCPoP/ATS1E1/TTCNP ARMv8.3 RCPC/CCIDX ARMv8.4 PMU/RCPC ARM: 支持 Cortex-M7 CPU ARM: 新板卡支持 tacoma-bmc, Netduino Plus 2 和 Orangepi PC ARM: ‘virt’ 机器支持 vTPM 和virtio-iommu 设备 HPPA: 通过 HP Artist 图形设备支持图形控制台 MIPS: 支持 GINVT (global TLB invalidation) 指令 PowerPC: 当 ic-mode=dual 时,‘pseries’ 机器不再需要重启来进行XIVE/XICS 中断控制器之间的中断控制 PowerPC: ‘powernv’ 机器现在可以模拟 KVM 硬件加速,并在 TCG 模式下运行 KVM guests RISC-V: ‘virt’ 和 ‘sifive_u’ 板卡现在支持 Linux 中的通用 syscon 驱动,以控制启动和重启 RISC-V: ‘virt’ 板卡支持 Goldfish RTC RISC-V: 实验性支持扩展草案的 v0.5 版本 s390: 当在 KVM 模式中运行时,支持适配器中断抑制(Adapter Interrupt Suppression) …… 完整更新内容查看更新日志 https://wiki.qemu.org/ChangeLog/5.0 下载地址: https://www.qemu.org/download/#source QEMU 是一个纯软件实现的通用模拟器和虚拟机,它有三种模式,几乎可以模拟任何硬件设备: Full-system emulation:可在任何支持的硬件架构上运行任何操作系统 User-mode emulation:运行另一个 Linux/BSD 程序 Virtualization:接近本机性能运行KVM 和 Xen 虚拟机 ​​​​​​​

优秀的个人博客,低调大师

nginx 1.18.0 稳定版发布

nginx 1.18.0已发布,这是继 1.16 系列之后的最新稳定版本。 1.18.0 加入了 1.17.x mainline 分支中的新功能和 bug 修复,包括limit_req和limit_conn中的 dry run 模式,limit_rate,limit_rate_after和grpc_pass指令中对变量的支持,以及支持auth_delay指令等。 auth_delay 指令位于ngx_http_core_module模块中,用法如下: 语法:auth_delay time; 默认值:auth_delay 0s; 上下文:http, server, location 通过 401 响应状态码来延迟处理未经授权的请求,以防止因密码、子请求结果或 JWT 导致访问受限而引起的时序攻击(Timing Attack)。 其他一些变更: 安全方面的改进,主要是修复针对 HTTP/2 客户端可能导致过多内存消耗和 CPU 使用率升高的问题 修复 nginx 在某些情况下可能过多占用 CPU 的问题,以及许多其他错误修复 需要使用 OpenSSL 0.9.8 或更高版本 nginx 1.18.0 下载地址:http://nginx.org/en/download.html 根据 nginx 发布新版的策略,“稳定”指的是功能和更新频率,它与软件质量无关。稳定分支在其生命周期中从不接收新功能,并且通常仅接收一个或两个更新,用于修复严重的错误。另外,稳定版本通常 fork 自最新的 mainline 版本。 因此,nginx 1.18.0 fork 自最新的 mainline 版本 1.17.10,它继承了过去一年中 1.17.x 的所有 bugfix 补丁、新增功能和其他变更。

优秀的个人博客,低调大师

sqltoy-orm-4.11.2 发版

sqltoy开源项目地址: github地址:https://github.com/chenrenfei/sagacity-sqltoy gitee地址: https://gitee.com/sagacity/sagacity-sqltoy sqltoy文档地址:https://chenrenfei.github.io/sqltoy/#/ 变更内容: 1、修复查询条件包含3个或以上in (:params) ,且中间条件参数值为null 处理异常。 做开源的目的: sqltoy积累了十年,其特性来源于项目实践和灵感,而绝不是为了写而写,我更希望可以用一个现成的! 但你看mybatis的sql写法,而其他人则完全走偏变本加厉,引入markdown或动态语言,完全不是在解决问题抓住问题的本质,而是将简单的问题变得复杂,玩炫技耍酷!跟你想要的完全不是一回事! sql的本质是什么?尽最大可能保持跟客户端(dbeaver)上调试时的一致!无论开发和后期变更运维都极为简单! <sql id="sqltoy_query_staffInfo"> <value> <![CDATA[ select * from sqltoy_staff_info t where #[t.staff_name like :staffName] #[and t.status in (:status)] ]]> </value> </sql> 灵感的东西富有哲理和高度抽象,往往难以超越,每次看到大家在谈sql写法和分页,我真想告诉你一下,应该是这样!建议可以跟sqltoy对比一下,宣传真正有价值的东西!让996的兄弟们有正确的认识和解决问题的策略! 更希望sqltoy可以发展或者在另外的产品上发展,让更多的人可以体验这种简洁舒心、可以依靠不愁搞不定那种感觉! sqltoy-orm主要特点: 具有基于对象类似于hibernate的crud,配套有quickvo从数据库产生pojo 极为科学优雅的sql编写方式 极具特色的缓存翻译: 根本杜绝sql注入 极为强大的分页优化 支持分库分表 支持跨库函数自适配 支持行列旋转、多维度分组汇总、同比环比计算 sql文件自动更新检测 提供了通用字段赋值功能 提供updateFetch 单次交互完成锁记录修改并返回结果 除了分页外提供取top记录、取随机记录、唯一性验证、树机构表统一处理和查询策略 除数据库自身的identity或sequnce外提供了4种主键策略:22位或26位纳秒、uuid、雪花算法、redis规则主键 提供了数据脱敏、数字格式、日期格式化(不是sql) <!-- 缓存翻译,可以对例如:A,B 这种拼连的进行翻译(要指定分隔符号后最后拼装符号 split-regex="," link-sign=",") uncached-template 是针对未能匹配时显示的补充,${value} 表示显示key值,可以key=[${value}未定义 这种写法 --> <translate cache="dictCache" cache-type="POST_TYPE" columns="POST_TYPE" cache-indexs="1" uncached-template="" /> <!-- 安全掩码:tel\姓名\地址\卡号 --> <!--最简单用法: <secure-mask columns="" type="tel"/> --> <secure-mask columns="" type="name" head-size="3" tail-size="4" mask-code="*****" mask-rate="50" /> <!-- 分库策略 --> <sharding-datasource strategy="multiDataBase" /> <!-- 分表策略 --> <sharding-table tables="" strategy="hisRealTable" params="" /> <!-- 分页优化,缓存相同查询条件的分页总记录数量, alive-max:表示相同的一个sql保留100个不同条件查询 alive-seconds:相同的查询条件分页总记录数保留时长(单位秒) --> <page-optimize alive-max="100" alive-seconds="600" /> <!-- 日期格式化 --> <date-format columns="" format="yyyy-MM-dd HH🇲🇲ss" /> <!-- 数字格式:包括:#,###.00(可以自定义)、captial(数字转中文大写)、capital-rmb(大写金额) 比较实用的,财务单据上经常要用到 --> <number-format columns="" format="capital-rmb" />

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册