自定义博客皮肤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工具

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

原创 我做了个Hexo博客

在了解这个主题的同时,我把 Hexo 官方的几百个主题都打开看过,一半以上的主题都失效了,演示页都打不开,还有很多文档不全,属于精品的最多能有几十个,符合自己需求的挺少,但是有一个。学了hexo文档、API,再学了Stylus和EJS后,改造起来就比较容易了,原来是漫无目的的找,现在直接根据规范来找文件和改造文件。一开始切入的主题就是如何添加边栏,花了不少时间做不出好看的效果,然后就放弃了,之后就是看如何让首屏图片展示的同时多漏出一部分文章的内容,避免一打开博客还以为进入了图站。这个主题是不是真的好看?

2024-06-23 10:37:34 539

原创 《MyBatis 从入门到精通》

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

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

原创 使用Obsidian写Hexo博客

整个操作起来挺麻烦的,写到一半我都写不下去了,如果有人喜欢这种方式,或者喜欢我改造的这个博客主题,可以留言给我,我可以把主题以及整个博客整理出一个框架开源出来方便大家使用。直接基于现成环境写的时候,上面所有这些操作都是配置好的,你可以把重点放在内容创作上。博客地址:大家还可以说说你们打开博客的速度怎么样,当我第一篇发出去后,首批打开博客的人说加载速度很慢,图片很多,而且都比较大,打开慢就避免不了。文章内容的图片自动转换为 webp 格式,这种格式的压缩率很高,图片瘦身效果很好。

2024-07-05 07:30:00 948

原创 ❤️❤️❤️2024-07-05❤️❤️❤️

今日AI图,。今日AI图,。

2024-07-05 07:00:00 120

原创 ❤️❤️❤️2024-06-23❤️❤️❤️

图生图,不同降噪程度的效果,更多AI图可以点击查看:https://blog.mybatis.io/gallery/517cb361

2024-06-23 10:32:47 106

原创 避免啰嗦,不要多此一举!

看到一段代码,写的比较啰嗦就用GitHub Copilot简化了一下,简化结果很简单,复杂度从273%降低到13%(复杂度使用IDEA插件。配合 IOC 使用时,像上面两个实现这样扩展就能增加新的策略,运行时扫描到就会自动注册,做到真正不修改任何代码,直接扩展新策略。你的判断条件和返回结果一致时,直接返回判断条件即可。,遍历放到 Map 中,没想到 Copilot 给出了一个更简单的实现!上面这个是 Copilot 给出的实现,比我常用的方式更简单,我没想到的地方是。的需求,这种方式很方便,附带消除了。

2024-06-06 09:58:52 416

原创 AI图 - 卡哇伊Q版 (8)

2024-06-06 09:56:40 122

原创 Redis 异常三连环

调用PageHelper时,你设置的分页信息已经绑定到线程,当满足条件执行 mybatis 查询时,分页信息会被消费并清除,当不满足条件时,分页信息仍然绑定在线程上,相当于埋了个雷,等其他请求再使用这个线程时,只要有查询,就会消费这里的分页信息,你的感受就是我没有调用分页,为什么查询被分页了?和错误1时完全不相关,所以前期处理的重点是错误2和3,这两个错误执行过程看着都是正常的,所以按照经验先解决序列化的问题,解决这个问题后如何问题解决就说明是序列化导致的后续两个问题。,并没有看到上面列的第一个异常。

2024-06-04 07:45:00 1228

原创 AI图 - 卡哇伊Q版 (7)

在看一本如何画Q版人物的绘画书时,收集了一些图片想临摹,收集过程中发现同类图片越来越多,肯定都是AI生成的了,就去搜有没有同款现成的Lora可用,下载了几个效果都很差,就找回以前的经验,准备了一些素材进行炼丹,炼丹很成功效果很好,下面是几个效果图。

2024-06-04 07:00:00 232

原创 来看一段有趣的代码

这段代码是对图片进行缩放,如果宽和高大于500就进行缩放,有意思的地方是明明可以直接计算出缩放倍率,偏偏要从 100%(i++位置调一下也能避免一次无用功)一直尝试到符合为止,我测试的图片是宽795高528,一直尝试到62%才满足,如果图片缩放涉及IO操作,消耗的资源可能会更大,经过查看 itextpdf 源码发现。宽高限制500的情况下和其他PDF格式的发票合并到一起时明显更窄,样式不统一不好看,通过查看PDF的宽高,经过计算将宽度设置为 595 的时候样式是统一的。

2024-05-11 11:32:33 536

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

2024-05-11 11:32:02 83

原创 Spring AI ETL 流水线

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

2024-04-16 11:45:00 1238

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

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

2024-04-16 06:14:28 258

原创 Spring AI 应用 - 智能记者

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

2024-04-11 08:00:00 1012

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

最后来个动图:

2024-04-11 07:30:00 144

原创 AI - ComfyUI过程图(3)

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

2024-04-06 12:07:15 286

原创 通用Mapper 4.3.0 发布

通用Mapper 4.3.0 发布。

2024-04-06 12:00:03 622

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

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

2024-04-04 15:23:20 165

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

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

2024-04-04 11:27:42 268

原创 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 5830 3

原创 Spring AI 使用本地 Ollama Embeddings

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

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

原创 Spring AI 连续对话

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

2024-03-28 08:30:00 1266

原创 Spring AI Function 的实现原理?

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

2024-03-25 08:00:00 1069 2

原创 Spring AI Embeddings 和 Vector 入门

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

2024-03-22 08:15:00 1670

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

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

2024-03-18 08:00:00 554

原创 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 1482

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

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

2024-03-15 08:00:00 332

原创 2023 年博客总结

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

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

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

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

2023-12-13 11:45:00 525

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

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

2023-12-06 08:15:00 1913

原创 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 1314

原创 MyBatis 分页插件 PageHelper 6.0.0 发布

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

2023-11-06 11:31:46 1226

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

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

2023-10-25 10:04:25 461

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

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

2023-10-19 08:30:00 290

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

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

2023-10-13 09:00:00 294

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

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

2023-10-12 09:00:00 322

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

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

2023-10-11 09:00:00 322

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

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

2023-10-10 09:00:00 252

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

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

2023-10-09 09:00:00 882

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

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

2023-10-08 19:30:00 922

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关注的人

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