首页 文章 精选 留言 我的

精选列表

搜索[VSCode扩展],共10000篇文章
优秀的个人博客,低调大师

xbatis 与 mybatis-plus 对比,两者均为 mybatis 扩展的 ORM 框架

注:文章由deepseek联网生成 我们把 xbatis 和 MyBatis-Plus (简称 MP) 放在一起,进行一次全方位的对比。两者都是基于 MyBatis 的增强框架,但设计哲学和侧重点有很明显的差异。 为了让你看得更清楚,我把它们的核心区别整理成了一个表格: 对比维度 xbatis (新一代) MyBatis-Plus (MP) 对比解读 设计哲学 重度 ORM,链式 DSL:追求极致的对象化操作,API设计接近自然语言,旨在让写代码像写SQL一样流畅。 增强工具,轻量封装:在MyBatis基础上做增强,提供通用Mapper和CRUD方法,目标是简化开发。 xbatis 更像一个彻底的“重构者”,而 MP 是一个优秀的“助手”。 核心API 链式查询 (QueryChain):所有操作通过链式API完成,非常流畅且一致。例如:QueryChain.of(mapper).eq(Entity::getId,1).paging(pager)。 条件构造器 (Wrapper):通过QueryWrapper或LambdaQueryWrapper构造条件,是独立的参数对象。例如:mapper.selectList(new LambdaQueryWrapper<User>().eq(User::getId, 1))。 xbatis 的链式 API 是方法的主体,而 MP 的 Wrapper 是方法的参数。xbatis 的写法在复杂场景下可能更连贯。 多表关联 原生支持:通过@Fetch注解或join方法,能够非常优雅地解决对象关联查询,并能有效避免 N+1 问题。 支持有限:官方推荐复杂关联查询回退到 XML 手写 SQL。虽然可以通过@Select注解注入 Wrapper 条件,但可读性和维护性较差。 这是 xbatis 一个非常突出的优势,对复杂业务系统很友好。MP 则更专注于单表操作。 分表能力 透明式分表:通过@SplitTable注解和自定义分片策略,业务代码对分表无感,框架自动路由到正确的子表。 不支持:需借助第三方中间件(如 Apache ShardingSphere)实现。 xbatis 在分表支持上更加“开箱即用”。 跨数据库兼容 内置深度兼容:内置的 SQL 构建器深度适配了 13+ 种数据库,同一套代码可以在不同数据库间无缝切换。 基础兼容:分页等基础操作兼容多种数据库,但复杂的函数或特性可能需手动适配。 xbatis 在设计上对跨数据库迁移的考虑更周全。 Mapper 模式 单 Mapper 模式:可以定义一个BasicMapper操作所有实体,无需为每个实体都创建 Mapper 接口。 实体绑定 Mapper:通常每个实体都需要一个继承BaseMapper<T>的接口。 xbatis 的“单 Mapper”模式在项目庞大时能减少大量重复的接口文件。 独特功能 -SQL 模板:兼顾手写 SQL 的灵活性。 -RETURNING子句支持:在更新/删除后直接返回操作结果,实现某些特定业务逻辑时非常便捷。 -代码生成器:非常成熟,可以快速生成 Entity、Mapper、Service、Controller 全套代码。 -活跃的生态:用户多,问题解决方案丰富。 MP 的代码生成器是其杀手锏;xbatis 则在RETURNING支持等细节上体现了其“重度 ORM”的深度。 💡 究竟该怎么选? 基于上面的对比,你可以根据自己项目的具体情况来决定: 选 xbatis,如果: 你的项目中有大量的多表关联查询,希望代码能像操作单表一样简单、优雅。 你的项目未来有分表计划,或者需要在多种数据库之间迁移。 你喜欢链式 API的流畅编程体验,希望代码即文档,逻辑更连贯。 你希望用一个框架解决 90% 的数据库操作问题,包括复杂的对象关系映射。 选 MyBatis-Plus,如果: 你的项目以单表 CRUD为主,复杂查询较少。 你非常依赖代码生成器来快速搭建项目。 你希望拥有更庞大的用户社区,遇到问题更容易在网上找到现成的解决方案。 你的团队已经习惯了Wrapper的使用方式。 xbatis 和 MP 都是非常优秀的框架。xbatis 凭借其链式 API、原生多表关联和分表能力,正在成为复杂业务开发的新选择;而 MP 则凭借其低门槛、强大的代码生成器和成熟的生态,在快速开发领域依然占据着稳固的地位。

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

Coding Plan权益扩展:支持四大编程模型!首月低至8.9元

为了给开发者带来更精细化的优质编程体验,今天,火山方舟 Coding Plan 权益迎来新升级。 Coding Plan 订阅套餐,现在集成了 Doubao-Seed-Code、GLM-4.7、DeepSeek-V3.2 和 Kimi-K2-Thinking 多款编程模型,让开发者能够自由切换 AI 引擎,为不同编程任务匹配最适合的模型。 未来,Coding Plan 也会动态加入更多出色的编程模型,第一时间集合更多模型版本,为开发者创新提速。 作为国内首个集合多款模型的订阅套餐,Coding Plan 新权益给开发者带来了灵活高效的编程体验,更延续了一贯的性价比优势:现在下单,首月折扣最低至2.2折,8.9元即可畅享模型自由! 国内首个集合多模型的订阅套餐 火山方舟 Coding Plan 是为广大开发者量身打造的 AI Coding 场景订阅服务。该服务支持最新的 Doubao-Seed-Code 模型与多款主流 AI 编码工具,大幅提升开发者代码编写的效率与质量。 同时,火山方舟 Coding Plan 还提供了 Auto 模式,这一智能调度系统能够基于“效果+速度”双维度智能匹配最合适的模型。 当前,用户以订阅的形式购买套餐,即可自由选择 Doubao-Seed-Code、GLM-4.7、DeepSeek-V3.2和 Kimi-K2-Thinking 国内主流编程模型;也可以使用 Auto 模式,让平台根据用户需求自动匹配更适合当下场景的模型。 使用火山方舟 Coding Plan,在 Claude Code 中尝试小游戏开发 便宜、量大、不降速 火山方舟 Coding Plan 涵盖 Lite 和 Pro 两大套餐,以满足轻量化使用和频繁使用的不同开发场景。其中,Pro 套餐用量是 Lite 套餐的5倍,为高强度开发工作提供充足保障。 Lite 套餐支持每5小时最多约1,200次请求,首购一个月优惠价仅9.9元; Pro 套餐支持每5小时最多约6,000次请求,首购一个月优惠价49.9元。 还有限时福利!推荐好友订阅,好友可享额外9折优惠,被推荐人还能获得订单10%的优惠券!推荐越多,优惠越多,无上限。 以 Lite 套餐为例,叠加推荐优惠券,首月优惠低至2.2折,8.9元即可立刻畅享模型自由,大幅降低尝试门槛。 而且首购一次性下单三个月可享5折。 依托字节跳动的资源保障和工程能力,Coding Plan 在实现更快的模型服务时,也确保了稳定性和可靠性。 在请求高峰期,Coding Plan 也能保持稳定的服务性能,服务不降速,让开发者专注于创造性工作。 火山方舟 Coding Plan 具有广泛的兼容性,支持:Claude Code、Cursor、Cline、Codex CLI、Kilo Code、Roo Code、OpenCode等多种主流编程工具,让开发者能够在熟悉的环境中享受 AI 编程的便利。 配置过程简单直观,只需两大步骤即可完成,大大降低了使用门槛。 步骤一:订阅火山方舟Coding Plan 访问火山方舟 Coding Plan 活动,按需订阅套餐;对比选择适合的套餐,轻量化使用考虑 Lite,频繁使用考虑 Pro。 支付成功后,确认 Coding Plan 已生效:打开火山方舟控制台的开通管理页面,查看套餐开始与结束时间。 在开通管理页面选择或切换目标模型,无需在工具中额外变更模型配置。 支持最新的 Doubao-Seed-Code、DeepSeek-V3.2、GLM-4.7、Kimi-K2模型,也可开启 Auto 模式,火山方舟将根据场景选择最优模型。 步骤二:配置编程工具 Coding Plan 支持 Claude Code、Cursor、Cline、Codex CLI 等编程工具。 下面以 Claude Code 为例介绍如何使用 Coding Plan。接入其他编程工具,请参见活动页 AI 编程工具接入指南。 例如,完成 Claude Code 安装后,配置以下信息。 ANTHROPIC_BASE_URL:https://ark.cn-beijing.volces.com/api/coding ANTHROPIC_AUTH_TOKEN:获取API Key。链接:https://console.volcengine.com/ark/region:ark+cn-beijing/apikey ANTHROPIC_MODEL: ark-code-latest 配置好之后,可以输入/status 确认模型状态。正确情况如下图所示,显示出你选择的模型信息。 注:如果提示如下出错信息,应是由于已登录过 Claude Code,可输入/logout 退出登录,再启动 Claude Code。 在这个 AI 技术日新月异的时代,拥抱先进工具不仅是提高效率的途径,更是保持竞争力的选择。

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

Ip2region 3.6.0 发布 - Javascript 扩展添加了 IPv6 的支持

Ip2region 是一个离线的 IP 数据管理框架和定位库,同时支持 IPv4 和 IPv6,支持亿级别的 IP 断管理,10 微秒级别的查询性能,提供了很多主流编程语言的 xdb 数据格式的生成和查询实现。 ip2region 官方社区已正式上线旨提强化 IP 相关的工具链和数据服务,目前提供了稳定的 商用离线数据、在线查询测试、xdb 使用 / 技术文档。 ip2region 3.6.0 详细更新如下: 1,ip2region.js npm 包支持,适用于 Nodejs / Typescript: npm install ip2region.js --save 2,javascript binding (nodejs / typescript) 提供了对 IPv6 的查询支持,具体使用文档请参考 javascript Binding,测试方式如下: ➜ javascript git:(master) node tests/search.app.js --db=../../data/ip2region_v6.xdb ip2region xdb searcher test program source xdb: ../../data/ip2region_v6.xdb (IPv6, vectorIndex) type 'quit' to exit ip2region>> :: {region: |||, ioCount: 2, took: 158.64 μs} ip2region>> 240e:3b7:3272:d8d0:3b7b:3ee0:1d39:848 {region: 中国|广东省|深圳市|家庭宽带, ioCount: 14, took: 256.98 μs} ip2region>> 2001:3:ffff:ffff:ffff:ffff:ffff:ffff {region: 美国|加利福尼亚州|洛杉矶|专线用户, ioCount: 21, took: 241.755 μs} ip2region>> 3,查询平均耗时:Razer 笔记本 / Ubuntu (电源均衡模式) + SATA SSD / VectorIndex 缓存,bench 结果如下: ➜ javascript git:(master) node tests/bench.app.js --db=../../data/ip2region_v6.xdb --src=../../data/ipv6_source.txt Searcher: {"version": IPv6, "dbPath": ../../data/ip2region_v6.xdb, "handle": 21, "vectorIndex": 524288 "cBuffer": null} Bench finished, {cachePolicy: vectorIndex, total: 34159862, took: 963.9443019528878 s, cost: 28.21862400828457 μs/op} 3415.9 万个 IPv6 平均查询耗时为 28.2微秒/次。

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

谷歌搜索 AI 模式扩展至 35 种新语言与 40 个新国家

谷歌宣布AI 模式(AI Mode)将向全球更多用户开放,支持超过35种新语言和40个新国家及地区的使用。这意味着,AI 模式将覆盖超过200个国家和地区,包括许多欧洲国家,越来越多的人将能够使用他们的母语进行搜索。 谷歌的最新Gemini 模型为搜索引擎带来了更强大的功能,用户可以用最自然的方式提出问题,充分利用自然语言理解和多模态能力。随着更多人能够使用自己熟悉的语言进行搜索,谷歌希望提升用户体验,使其更加便利。 Gemini 模型的先进推理和多模态理解能力使得 AI 模式能够真正理解地方语言的细微差别,确保其在新推出的语言中能够提供真实、有用的帮助。用户在使用 AI 模式时,已经能够深入探讨复杂主题,提问的长度几乎是传统搜索的三倍。 谷歌表示,这一新的 AI 模式体验将在未来一周内逐步向更多用户开放,期待用户能够享受到更加丰富的搜索体验。

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

Ip2region 3.5.0 发布 - Rust 扩展添加了 IPv6 的支持

Ip2region 是一个离线的 IP 数据管理框架和定位库,同时支持 IPv4 和 IPv6,支持亿级别的 IP 断管理,10 微秒级别的查询性能,提供了很多主流编程语言的 xdb 数据格式的生成和查询实现。 ip2region 官方社区已正式上线旨提强化 IP 相关的工具链和数据服务,目前提供了稳定的 商用离线数据、在线查询测试、xdb 使用 / 技术文档。 Ip2Region 3.5.0 详细更新如下: Rust binding 增加了 NoCache / VectorIndex / FullMemory 三种缓存策略的完整实现。 Rust binding 提了 IPv6 的查询支持,具体使用文档请参考 Rust Binding,测试方式如下: $ cd binding/rust $ ./target/release/searcher --xdb='../../data/ip2region_v6.xdb' query ip2region xdb searcher test program, type `quit` or `Ctrl + c` to exit ip2region>> 2001:5:4:: region: Ok("荷兰|北荷兰省|阿姆斯特丹|专线用户"), took: 284.80775ms ip2region>> 2001:: region: Ok("美国|加利福尼亚州|洛杉矶|专线用户"), took: 12.75µs ip2region>> 2001:5:6:: region: Ok("荷兰|北荷兰省|阿姆斯特丹|专线用户"), took: 52.958µs ip2region>> 2001:5:5:: region: Ok("比利时|弗拉芒大区|泽勒|专线用户"), took: 123.375µs ip2region>> Rust 增加了标准的原始数据/xdb 的 bench 测试,方便开发者测试查询性能,验证 xdb 文件的有效性,测试方式如下: $ cd binding/rust/example $ cargo build -r ## 通过 data/ip2region_v4.xdb 和 data/ipv4_source.txt 进行 ipv4 的 bench 测试: $ RUST_LOG=debug ../target/release/searcher --xdb='../../../data/ip2region_v4.xdb' bench '../../../data/ipv4_source.txt' ## 通过 data/ip2region_v6.xdb 和 data/ipv6_source.txt 进行 ipv6 的 bench 测试: $ RUST_LOG=debug ../target/release/searcher --xdb='../../../data/ip2region_v6.xdb' bench '../../../data/ipv6_source.txt' Java/Golang maker 生成过程中的允许空 region 信息方便自定义字段的的指定,有些字段的值确实为空。

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

Neovim v0.9.0 发布,基于 Vim 的可扩展文本编辑器

Neovim v0.9.0 已发布。 主要变化: 为 lua2dox.lua 添加对@generic的支持 为 lua2dox 添加对可选参数的支持 为 lua2dox 添加对指定类型的支持 在介绍中提及 ":help news" #20674 支持使用 ":write ++p" 创建父级目录#20835 添加 vim.secure.read() vim.inspect_pos,vim.show_pos,:Inspect $NVIM_APPNAME#22128 支持尝试从丢失的临时目录 (tempdir) 进行恢复 #22573 添加vim.filetype.get_option() 添加vim.treesitter.language.get_filetypes()(#22643) 支持传递给 defaulttable 的函数接受参数 (#22839) …… 详情查看 release notes。 Neovim 是 Vim 的一个分支,旨在改进代码库,允许更轻松地实现 API,改善用户体验和插件实现。Neovim 的源代码比 Vim 少 30%。 其目标是: 重构代码以改善维护 实施新的高级功能 展示一个更好、更强大的插件系统 开放的开发模式,随时接受贡献,接受的标准也很明确。 特性: 现代图形用户界面 从任何语言访问 API,包括 C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java, JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust 嵌入式、可编写脚本的终端仿真器 异步作业控制 多个编辑器实例之间的共享数据(shada)。 支持 XDG 基础目录 与大多数 Vim 插件兼容,包括 Ruby 和 Python 插件

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

Neovim v0.8.0 发布,基于 Vim 的可扩展文本编辑器

Neovim v0.8.0 已发布。 主要特性变化 runtime: Enable filetype.lua by default (#19216) Addundo! Add "prerelease" to version dict Click support for 'statusline', 'winbar'#18650 Add preview functionality to user commands allow Cmdheight=0 (EXPERIMENTAL)#16251 Stdpath('run'), /tmp/nvim.user/#18993 Add 'mousescroll' option (#12355) Allow :wincmd to accept a count (#19815) Multibuffer preview support for inccommand Man: Port to Lua (#19912) 详情查看 release note。 Neovim 是 Vim 的一个分支,旨在改进代码库,允许更轻松地实现 API,改善用户体验和插件实现。Neovim 的源代码比 Vim 少 30%。 其目标是: 重构代码以改善维护 实施新的高级功能 展示一个更好、更强大的插件系统 开放的开发模式,随时接受贡献,接受的标准也很明确。 特性: 现代图形用户界面 从任何语言访问 API,包括 C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java, JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust 嵌入式、可编写脚本的终端仿真器 异步作业控制 多个编辑器实例之间的共享数据(shada)。 支持 XDG 基础目录 与大多数 Vim 插件兼容,包括 Ruby 和 Python 插件

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

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

用户登录
用户注册