自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

偶尔记一下 - mybatis.io

没事看看 - MyBatis工具

  • 博客(424)
  • 资源 (7)
  • 收藏
  • 关注

原创 方便的 Kubernetes API 参考文档

http://k8s.mybatis.tk关注过 K8s 的人可能都看过官方的 API 参考文档:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.13这个文档的形式如下图所示:如果你真正参考过这个文档,你会发现这个文档特别不好用,想要逐级查看属性信息时,经常在锚点之间跳转,无法从整体上看到完整的结构,非...

2019-02-24 19:30:15 5767 5

原创 《MyBatis 从入门到精通》

我在CSDN博客写了不少和MyBatis相关的博客,2015年时觉得自己写的太零散,不够系统全面,所以在GitBook创建了一本名为MyBatis最佳实践的开源电子书,当时写好了目录大纲,由于维护好几个开源项目,业余时间几乎都被占用,最终也只写了MyBatis Generator部分,也就是博客中的MyBatis Generator 详解。2016年3月份时,博文视点的孙奇俏编辑和我联系,然后就开始

2017-06-21 20:46:33 99637 65

原创 Spring AI ETL 流水线

先纠正中的一个错误,当启动 Ollama 之后,Windows会有托盘图标,此时已经启动了 Ollama 的服务,访问 Embedding 时不需要运行,只有访问 chat 时才需要启动一个大模型。Spring AI 提供的 ETL 流水线比较全面,使用很简单。提取、转换和加载 (ETL) 框架是检索增强生成 (RAG) 用例中数据处理的支柱。ETL 管道协调从原始数据源到结构化向量存储的流程,确保数据采用最佳格式,以便 AI 模型进行检索。

2024-04-16 11:45:00 771

原创 AI - 提示词意外收获 (5)

【代码】AI - 提示词意外收获 (5)

2024-04-16 06:14:28 217

原创 Spring AI 应用 - 智能记者

参考实现: https://github.com/mshumer/ai-journalist上面是通过 Claude 配合 SERP 搜索 API,使用 Python 语言实现的,本文通过 GitHub Copilot 辅助改为了基于 Spring AI 的 Java 版本,本文使用的 OpenAI。

2024-04-11 08:00:00 899

原创 AI - 冰雪兔女王(4)

最后来个动图:

2024-04-11 07:30:00 109

原创 AI - ComfyUI过程图(3)

ComfyUI 比 Stable Diffusion WebUI更灵活,而且可以看到处理过程,能增加节点进行后续处理,因而更强大。如果没有后续处理的结果,当第一张图出现时就会直接被放弃。当通过后续处理能发生如此大的变化时,等待就有了价值。使用 Ultimate SD Upscale 提升分辨率。脸部比较模糊,使用 FaceDetailer 处理。看看下面一张图的变化,一开始惨不忍睹。

2024-04-06 12:07:15 225

原创 通用Mapper 4.3.0 发布

通用Mapper 4.3.0 发布。

2024-04-06 12:00:03 550

原创 AI - 冰雪兔女王(2)

冰雪兔女王这个流程主要使用了 **Ultimate SD Upscale** 提升图片分辨率,流程已经分享到 openart.ai,地址在文末。

2024-04-04 15:23:20 122

原创 AI - 冰雪兔女王(1)

早期用自己gtx970显卡,出图太慢,显存低,分辨率低。然后白嫖谷歌colab,用了一段时间觉得每次初始化太费时间,就从京东买了个二手2080ti 11g的显卡(1800多,到目前用了一年多),用本地的就方便很多,平时电脑休眠,想用时立马就能用上。除了2022年底ChatGPT很火之外,另一个开源的Stable Diffusion 也非常火,我一开始用的最多的是Stable Diffusion WebUI,再后来就是用ComfyUI。如果有喜欢的图可以留言,我可以分享工作流到 openart.ai。

2024-04-04 11:27:42 192

原创 Ollama 导入自定义模型

在前面 Spring AI 使用本地 Ollama Embeddings 中查找 Embedding 模型的时候,首先看到了 mofanke/dmeta-embedding-zh 模型,这才发现 Ollama 中除了官方模型外还有用户自己上传的其他模型,搜索 dmeta-embedding-zh 找到了抱脸网上的对应模型:https://huggingface.co/DMetaSoul/Dmeta-embedding-zh模型介绍有 MTEB Chinese list 评分排名,打开该地址可以看到排名:

2024-04-03 11:34:48 1558

原创 Spring AI 使用本地 Ollama Embeddings

通过 Ollama 的扩展方式,还可以方便我们导入官方仓库不存在的其他模型,后续文章会以。使用 OpenAI 的 Embeddings 接口是有费用的,如果想对大量文档进行测试,使用本地部署的 Embeddings 就能省去大量的费用,所以我们尝试使用本地的 Ollama Embeddings。这个模型包含几个不同的版本,默认为 7b 的版本,可以先试试 7b,如果速度太慢可以换 2b 试试,执行命令。中的参数即可使用其他模型,如果本地下载过 llama2 模型,就可以直接改这里的参数,不需要重新执行。

2024-04-02 08:30:00 1035 1

原创 Spring AI 连续对话

在前面中我们只调用了一次请求,返回了一个结果,我们见过的各种 chat 都是支持连续对话的,AI 需要记住我们的上下文才能让对话连贯起来,通过 API 调用的时候每次对话都是一次无状态的独立请求,想要实现连续对话就需要我们自己记住对话的历史,在每次调用 API 的时候将对话历史传递给 API。本文就简单实现连续对话,并且引申一些相关的扩折或者优化。

2024-03-28 08:30:00 803

原创 Spring AI Function 的实现原理?

在前面中介绍了 Chat 中的 Function 用法,我很好奇这个 Function 是如何被调用的,就在下面代码中加了断点看执行:执行过程中进入了这个方法,并且符合 Request 类型的参数,这是如何实现的?就像魔法一样神奇,这是 Spring AI 的功能还是 OpenAI 的功能?好奇心引导我必须深入看看。

2024-03-25 08:00:00 868

原创 Spring AI Embeddings 和 Vector 入门

文本嵌入(Embeddings)将文本转换为数值数组或向量,使人工智能模型能够处理和理解语言数据。这种从文本到数字的转换以及反向转换,是人工智能如何与人类语言互动和理解它的关键要素。对于探索人工智能的 Java 开发者来说,没有必要理解这些向量表示背后复杂的技术原理或是具体实现细节。只要基本了解它们在人工智能系统中的作用和功能就足够了,尤其是在将人工智能功能集成到应用程序中的时候。文本嵌入在诸如检索增强生成 (RAG) 模式等实际应用中尤为重要。

2024-03-22 08:15:00 1094

原创 谷歌 Colab:学习 Python 和大模型的利器

谷歌 Colab,又称 Colaboratory,是一个基于 Jupyter 笔记本的免费在线平台,可让您在浏览器中编写和执行 Python 代码。它无需配置,即可轻松访问 GPU 和 TPU 等强大硬件,并支持丰富的文本、代码、图像、视频等格式,非常适合学习 Python 和大模型。网址:https://colab.research.google.com/谷歌colab更简洁,打开后直接新建笔记本使用,也可以使用教程、github等网站写好的笔记本使用。

2024-03-18 08:00:00 408

原创 Spring AI Chat 简单示例

官方文档地址: https://docs.spring.io/spring-ai/reference/index.htmlSpring AI 可以方便 Java 开发者在代码中集成 AI 的功能,通过 Spring 提供的抽象,可以方便的切换不同的AI提供商,Spring AI 是对 AI 的使用,并不涉及 AI 的训练。Spring AI 目前还很不稳定,官方文档还有大量错误,API 也会变动导致不兼容,当前文章示例使用的 0.8.1 版本。

2024-03-16 08:30:00 818

原创 编码技巧:多条件判断拼接字符串

在写代码业务逻辑的时候,有时候需求稍微变化一下都让代码变的很麻烦,如果只在现有代码基础上硬改,可能会让可读性降低,本文通过一个例子来演示字符串拼接的变化。后来连上面这种写法中如果不满足,前面就是"",此时如果后面条件满足,拼接时会额外带上and导致语法错误,如果不嫌麻烦把and这样倒是能实现功能了,但是不易于阅读,看着就很乱。我们来看看GitHub Copilot会如何解决上面的变化。

2024-03-15 08:00:00 269

原创 2023 年博客总结

2022 年博客总结2021 年博客总结2020 年博客总结2019 年博客总结2018 年博客总结。

2024-01-03 21:35:52 1004 1

原创 GitHub Copilot - Elasticsearch 和 MySQL 单表查询耗时比对

当单表数据库超过百万后,数据库查询明显变慢,为了对比 Elasticsearch 的效果,将百万级的测试数据导入到 Elasticsearch 中对比看看效果。导入和查询 Elasticsearch 的过程完全通过辅助编码。

2023-12-13 11:45:00 412

原创 WSL 配置 Docker 内存和 CPU 资源限制

我用的电脑一共有40G内存,最近发现电脑重启后,VmmemWSL 进程很快就会占用一多半的内存(20+G),电脑中有多个停止运行的容器,正常启动状态的只有一个 MySQL 服务,通过。Docker Desktop 早期版本可以直接配置内存使用,改成 WSL 方式后需要去调整 WSL 的资源使用,参考。查看占用内存也不多,不知道为什么会占用这么多内存,但是必须限制一下。上面配置限制内存和交换内存都是 8G,可以根据自己内存进行调整。),然后启动 WSL 和 Docker,此后占用内存就很少了。

2023-12-06 08:15:00 1171

原创 Windows 系统配置 GraalVM 的 native-image 环境

使用官方文档链接下载的,这个工具安装的 VS CODE 2019 版本,安装的cl.exe版本低,会报下面的错误:Error: On Windows, GraalVM Native Image for JDK 21 requires Visual Studio 2022 version 17.1.0 or later (C/C++ Optimizing Compiler Version 19.31 or later).?

2023-11-30 07:45:00 904

原创 MyBatis 分页插件 PageHelper 6.0.0 发布

如果你使用的数据库不在这个列表时,你可以配置。该插件目前支持以下数据库的。

2023-11-06 11:31:46 857

原创 混淆技术研究笔记(八)扩展yGuard实现签名

中我们使用 hutool 的工具类实现了私钥加密的方法,我们这里直接用,首先添加 hutool 的依赖,在。

2023-10-25 10:04:25 356

原创 混淆技术研究笔记(七)Ant扩展介绍

如果你需要在配置好的对象上进行后续处理,可以使用这个方法,如果想在配置前处理,可以选择前两种方式。当你嵌套的对象需要复杂的创建方式时,可以采用这种方式,这种方式适合初始化对象。对象注入进来了,而且此时该对象是空的,还没有被赋值,这种情况下的参数(如这里的。同时存在时不一定会调用哪一个方法,当你方法中存在逻辑时,就无法保证处理一致。方法,该方法采用带有无参数构造函数的 Object 类型的单个参数。,否则后续无法获取该值。这里返回该对象后,这个对象会被赋值,在后续执行。,实际上不继承也可以,定义一个。

2023-10-19 08:30:00 261

原创 混淆技术研究笔记(六)如何基于yGuard实现?

如果一上来就想着如何设计,万一最后行不通就白费了,而且设计没有尽头,想要完美的设计可能需要纠结很久才有结果,在这种重构调整比较容易的情况下,先动手,后设计。准备工作都已经好了,接下来就该动手实现了,此时我还有一个问题,yguard中是如何创建对象的,xml和类是如何结合的,于是我找到了。这里会使用改后的文件名,那么改后文件名的生效肯定是在这里,这里可能会有写入jar的操作,这非常关键,但是我们先回到前面继续查找。就可以写入文件,而且也不必存在已有的文件,直接加个新的也可以,在。

2023-10-13 09:00:00 245

原创 混淆技术研究笔记(五)混淆后如何反篡改?

有了上一节的基础工具后,接下来要考虑如何反篡改。本文采用的是对混淆后的代码,针对某些关键包的字节码数据计算md5值,对所有类计算完成后对md5值进行排序,排序后拼接字符串再次计算md5值,最后通过私钥对md5进行RSA对称加密,加密后的内容要放到核心的jar包中。

2023-10-12 09:00:00 297

原创 混淆技术研究笔记(四)反篡改介绍

前面我们已经对代码进行了混淆,想修改代码是很难的,如果我们打包包含的代码很多,为了功能的完整性,我们可能会要求核心代码不允许被覆盖,被混淆的代码通过某些工具还是可以改名的,比如把超长的名字改短,然后再覆盖代码,有很多手段能绕过,为了再增加一些难度,本文考虑使用RSA对称加密对混淆后的代码进行加密,不允许修改混淆后的类名,不允许修改文件内容。使用文件校验和:可以使用文件校验和算法(如MD5或SHA-256)计算JAR包的校验和,并将校验和值保存在可信任的位置(如服务器)。混淆后的代码更难被篡改和逆向工程。

2023-10-11 09:00:00 261

原创 混淆技术研究笔记(三)多模块混淆

虽然这里很简单,但是我实际要处理的这个项目有4级多模块,总共能打包七十几个模块,而且要和旧版打包方式接近,因此耗时很久,最难的就是上一节介绍的,如果有多种混淆配置(能配置多个,比如 a 依赖 b,b 依赖 c 的情况,如果配置到 a 中,在 a 中对a,b,c进行混淆,确实能实现对 jar 包内容的混淆,但是当执行。发布时,Maven会根据模块依赖顺序计算构建的顺序,第一个构建的模块会走完全部的生命周期后,再对第二个模块进行相同的处理,依次执行完全部的模块。中添加a,b,c的依赖,保证最后执行,在。

2023-10-10 09:00:00 190

原创 混淆技术研究笔记(二)yGuard入门

可以配置多个,但是maven执行的机制导致这里能被有效混淆的只能有1个,后续实现的多模块混淆是利用了Maven生命周期的一些特点实现的。,这个明显没有对应的 jar,这种写法是无法自动解析为对应jar包的,使用Maven时需要注意,官方示例和文档中也有类似的错误。进行了排除,如果你的混淆配置更复杂,优先级无法确定时,上面的配置粒度仍然不够小,应该把。上面相当于两部分规则,第一部分是完全混淆的代码,第二部分是完全保留的代码,当配置多块时,配置,一般情况下不需要细致的具体的方法进行配置,通过。

2023-10-09 09:00:00 567

原创 混淆技术研究笔记(一)常见工具介绍

第一节先来点简单的内容,下面是通过 AI 生成的几款常见的混淆工具简介及对比。├─module-a├─module-b└─module-c一般只能分别对a,b,c进行混淆,我称这种为单模块混淆。模块之间如果存在调用关系,就要把需要暴露的接口配置为不混淆,否则混淆后互相不认识就无法调用了,这是单模块混淆的最大特点,如果需要被调用,一定会暴露入口。多模块。

2023-10-08 19:30:00 851

原创 虚拟线程最佳实践

虚拟线程的数量众多,赋予了虚拟线程强大的力量:通过允许服务器同时处理更多请求,它们可以更有效地运行以每个请求线程风格编写的服务器应用程序,从而提高吞吐量并减少硬件浪费。我们应该有多少个虚拟线程的问题变得显而易见,就像我们应该使用多少个字符串在内存中存储一​​组用户名的问题一样显而易见:虚拟线程的数量始终等于并发任务的数量在您的应用程序中。尽管您可以将平台线程池视为处理从队列中提取的任务的工作人员,并将虚拟线程视为任务本身,在它们可以继续之前被阻塞,但计算机中的底层表示实际上是相同的。

2023-09-20 21:17:27 712 2

原创 Virtual Threads 虚拟线程

平台线程被实现为操作系统 (OS) 线程的薄包装器。平台线程在其底层操作系统线程上运行 Java 代码,并且平台线程在平台线程的整个生命周期内捕获其操作系统线程。因此,可用平台线程的数量仅限于操作系统线程的数量。平台线程通常具有大型线程堆栈和由操作系统维护的其他资源。它们适合运行所有类型的任务,但资源可能有限。

2023-09-20 20:56:14 303

原创 Linux环境Runtime如何运行子进程?

这是一个Linux环境特定的问题,最简单避免的方式就是在Linux环境制作Linux的安装包。如果遇到类似问题,可以查看jres中所有可执行程序是否有执行的权限。

2023-09-06 08:45:00 277

原创 git fsmonitor--daemon 占用目录,导致无法修改

这个守护进程是一个长时间运行的进程,用于监视单个工作目录并维护最近更改的文件和目录的列表。git status 之类的命令如果只要求对工作目录的更改进行汇总并且可以避免扫描磁盘,则可以提高性能。(或者PowerToys) 发现占用该目录的进程,右键打开。为什么会有大量 git 占用目录呢?右键增加命令行列后如上图所示,大量。此时就可以修改文件名了。

2023-05-22 18:30:00 776 7

原创 WSL2 对外暴露端口

参考文档按照下面的操作步骤进行操作。

2023-04-24 19:30:00 3934 2

原创 MyBatis游标Cursor在Oracle数据库上的测试

除了上面的列出的几种情况下,还试过多种不同的配置,耗时没有比2.5更好。除了MySQL中需要通过作为标记开启流式传输外,其他数据库都是正常的用法,通过控制fetchSize大小来减少内存占用和数据库交互次数。

2023-03-27 23:59:08 1011

原创 MyBatis游标Cursor的正确用法和百万数据传输的内存测试

很早以前为了处理大量数据想过使用Cursor,当时发现没有效果,就没有继续深入。这次为了搞清楚Cursor是否真的有用,找些资料和源码发现是有效果的,只是缺了必要的配置。

2023-03-25 23:23:48 6624 4

原创 多种工具协同创建一个基于CentOS,包含最新版本sysstat的镜像

服务器上部署了sysstat,通过sar可以保留系统监控记录,从服务器下载数据在别处分析时,不是很方便,因此考虑构建一个方便使用的Docker镜像辅助工作。

2023-03-23 12:29:55 399

原创 MySQL JDBC 中 tinyint(1) 处理为Boolean 的代码逻辑

MySQL JDBC 中tinyint(1)类型,在查询时默认会被处理为Boolean类型。

2023-02-16 19:30:00 2939 2

jp.gr.java_conf.ussiy.app.propedit_6.0.3.zip

Eclipse属性资源文件插件。

2016-05-12

SQL转Java代码小工具

可以将多行SQL转换为程序可用的字符串。详情看博客相关文章。

2013-06-08

Excel通用导出excel文件

Excel 通用导出 excel 文件

2013-02-25

vote 投票功能 纯html

附件,相关文章介绍,查看本人CSDN博客:div+css+jQuery简单实现投票功能..

2012-08-15

读取Excel的POI jar包

读取Excel的必备JAR包,可以从poi官方下载。

2012-03-17

Excel通用读取模块源码和JAR

由于平时经常需要处理读取Excel,所以写了这样一个小模块来处理读取Excel... 关于写出Excel的功能,以后再写一个通用的。

2012-03-17

w3school完整版-最新编译-2011-10-7

w3school完整版-最新编译-2011-10-7 和网站上内容一样,方便查看。

2011-10-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除