- 博客(119)
- 资源 (7)
- 收藏
- 关注
原创 多租户分库分表同步数据库DDL脚本
我们在实现多租户系统的时候,为了数据安全和性能,往往会把数据库设计成一个租户一个数据库,如下图,主库记录了租户信息和对应的数据库地址,租户数据库则存储了租户相关的数据,租户数据库的表结构都是一致的,这种方式有个痛点就是变更表结构非常麻烦,需要一个个数据库去变更,幸运的是可以通过一段代码来实现SQL脚本的同步。使用工具类:Hutool。
2024-07-22 11:27:37
85
原创 知识库文档处理,word转markdown
前一篇我讲解了如何对接MiniMax实现FAQ,其实知识库不仅仅可以实现FAQ,还能实现帮助文档的查询,内部培训资料的查询等等,但是这些培训资料大部分是word版本的,并且有层级结构,比如标题1,标题1-1等等,这种层级结构AI是无法识别的,所以需要转换成markdown格式的,帮助文档还有一个问题就是相似问题容易混淆,比如A文档有联系人,B文档也有联系人,这时查联系人就会出现错误的情况,所以要在每个标题前加前缀,比如A文档的联系人,B文档的联系人,这些也希望能够在转换程序中实现.
2024-07-18 15:36:58
499
原创 对接MiniMax知识库,实现FAQRobot
我们在逛淘宝拼多多的时候,看到一个喜欢的商品,就会像客服问很多问题,这些问题有很多重复的,如果客服每次都回答,会浪费很多时间和人力,这个时候就可以整理成FAQ(Frequently Asked Questions,经常问到的问题),客户当然不会费劲去看这些FAQ,他们只关心自己提问的问题,这时就需要用到自然语言处理和知识库了。
2024-07-18 13:45:22
244
原创 对接微信支付
公众号上支付使用jsapi,小程序支付看小程序支付文档,后台跟jsapi一样的,上面两种方式都是手机内支付,点支付按钮后唤起微信去支付如果是pc网站上弹出一个二维码,用手机扫描支付,就是native支付,
2024-07-08 10:18:43
343
原创 从零开始学Vue3--井字棋
今天的教程是一个综合案例,在这个案例中你将学会如何创建组件,如何监听事件,如何在组件间传值,如何定义计算属性,如何循环渲染,如何条件渲染等。
2024-05-30 09:42:58
385
1
原创 从零开始学Vue3--根据目录结构自动生成路由
我们在测试或者小项目中经常遇到一个问题,就是加一个页面,就要在router.js中加一个路由,相当的麻烦,有没有办法可以根据目录结构自动生成路由呢?
2024-05-29 16:28:40
545
1
原创 从零开始学React--JSX
是 JavaScript 语法扩展,可以让你在 JavaScript 文件中书写类似 HTML 的标签。所以JSX看起来像HTML,但是语法比HTML严格,比如只允许一个根节点,所有标签必须闭合,class属性要改成className等,参见JSX最强大的地方是可以在HTML里面写js代码。
2024-05-29 14:48:27
491
原创 从零开始学React--环境搭建
由于我们需要一个纯洁的测试环境,所以需要清理掉不需要的代码,src文件夹下只需要保留App.js和index.js。Home组件可以写链接,这样有几个测试页面就有几个链接,要加个测试页面加个链接就能跳转过去了。上面的方式有个缺点就是只能在一个文件上面测试,如果想在多个文件测试需要用到路由。新建几个文件,page下面的文件表示页面组件,router表示路由数据。这样就能得到一个纯洁的项目可以直接在App.js里面做练习了。index.js改成如下代码。Article是测试页面。router是路由数据。
2024-05-28 13:54:12
688
原创 从零开始学Vue3--模板语法
Vue的核心是MVVM,也就是数据能够影响界面,界面也能影响数据,什么意思呢?比如有个输入框,它绑定的变量name,如果你改变了name的值,输入框显示的值就会变化,如果用户在输入框里面输东西,name对应的值也会变化vue3推荐使用组合式API,在script上加setup表示里面的变量和方法可以暴露给模板使用ref方法可以让值变成响应式对象,一般用来包裹基本数据类型,要取值的话要加个value来取值,reactive用来包裹对象类型让该对象变成响应式。
2024-05-24 15:36:59
342
原创 对接kimi,打造聊天机器人,生成文档摘要
提取文档摘要我们先要把文档上传到kimi获取一个content,再调用聊天接口给提示词就行了@Operation(summary = "提取文档摘要")String hint = "请简要描述文档中的内容";
2024-04-23 16:38:16
1978
2
原创 按照模板导出复杂样式的excel
导出excel通常使用的是apache poi,但是poi的api相当复杂,所以当导出的excel样式比较复杂时,写起来就比较头疼了,这里推荐使用。如果是变量,就用双大括号包裹变量,如果是列表,则使用$fe指令,maplist是变量名,t.id是要输出的字段,最后以t.hdje}}结果表示结束。, 可以很方便的根据模板来导出复杂excel。第二步,新建excel模板,然后写入内容。我们要实现如图所示效果,该怎么实现呢。第三步,获取数据,写入输出流。
2024-04-22 17:31:58
627
原创 mybatis一对一,多对一,一对多--使用自动映射避免繁琐的resultMap
我们知道,相比较hibernate,mybatis的一对一,一对多都比较繁琐,hibernate可以直接在实体类里面配置好映射关系,获取值的时候就能把一对一和一对多的对象带出来了,而mybatis需要用到resultMap,需要在resultMap中把实体类与表字段的对应关系一一写出来,如果遇到关联表有相同字段名,还要写别名,画风往往是这样的:看着好像还行,但是要知道有些表可是有几十个字段的, 不仅要写resultMap,还要在sql中把所有列名写出来,这酸爽,看着就头疼,幸亏有个大杀器autoMappin
2024-04-19 13:39:02
1081
原创 定位一段文字在word文档哪个章节下面
接下来就简单了,我们通过遍历文档段落,查找该段落中是否包含指定文字,如果包含则说明该段文字属于该章节,很多人可能会去使用document.getParagraphs来遍历文档,但是这种方式只能获取段落内容,如果文档中包含表格则获取不到,所以为了完整的遍历文档可以使用XWPFWordExtractor这个类来提取文字。
2024-03-29 16:27:31
266
原创 比对word文档并提取差异片段(java版)
有时候,我们想比对两个word文档,标记出两个文档之间的差异,这样一眼就能看出来修改了哪些地方,如下图,左边文档中的扩招2000人删除了,辞呈改成了说明,新增了并且加重处罚等文字,是否一目了然了。
2024-03-27 17:02:15
948
1
原创 使用java比较word文档内容
要比较word文档内容,我们需要先读取word文档,这里使用poi库,至于比较内容,可以使用apache的commons-text库。
2024-03-21 14:36:10
649
原创 IDEA 下载依赖包源码报错 Cannot download sources Sources not found for:XXX
最近在做一个功能的时候想看一个库的源码,结果源码下不下来,报Cannot download sources Sources not found for:XXX,网上搜了半天,也找不到靠谱的结论后来想了下,应该是镜像那边出了问题,把镜像一删,源码就能下了,用的还是阿里云的镜像,有点坑,后来一搜,发现是阿里云镜像的地址变更了,我还在用老的地址,难怪了。
2024-03-20 16:02:29
840
原创 SpringBoot2.7集成Swagger3
Swagger2已经在17年停止维护了,取而代之的是 Swagger3(基于openApi3),所以新项目要尽量使用Swagger3.
2024-03-18 14:45:09
1961
原创 Caused by: java.lang.NoSuchFieldError 问题解决方案
最近改了下依赖包版本,编译启动没啥问题,但调接口的时候报错了遇到这种问题一般都是依赖包版本冲突造成的。
2024-03-08 14:05:09
1781
原创 力扣经典题目解析--最小覆盖子串
原题地址:给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。tts"BANC"最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。"a"整个字符串 s 是最小覆盖子串。""t 中两个字符 'a' 均应包含在 s 的子串中,因此没有符合条件的子字符串,返回空字符串。
2024-03-04 16:21:39
1010
原创 力扣经典题目解析--滑动窗口最大值
原题地址:给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。滑动窗口的位置 最大值[1]
2024-03-01 16:58:47
1005
原创 力扣经典题目解析--字符串相加
原题地址:给定两个字符串形式的非负整数num1和num2,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如BigInteger), 也不能直接将输入的字符串转换为整数形式。
2024-02-27 14:38:21
534
原创 力扣经典题目解析--搜索二维矩阵(小米一面)
原题地址:给你一个满足下述两条属性的m x n给你一个整数target,如果target在矩阵中,返回true;否则,返回false。truefalse。
2024-02-27 10:23:12
669
原创 力扣经典题目解析--旋转图像(字节二面)
原题地址:给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转 90 度。你必须在旋转图像,这意味着你需要直接修改输入的二维矩阵。使用另一个矩阵来旋转图像。
2024-02-23 16:54:45
634
原创 力扣经典题目解析--下一个排列(字节面试题)
这是一道中等难度的字节秋招面试题,很多伙伴都被问到了,同时也有很多同学表示连题目都看不懂,我们来看下原题。
2024-02-23 14:25:28
1000
原创 力扣经典题目解析--两数之和
题目地址:简单来说就是在一个数组中找出两个数,这两个数相加要等于给定的target,下面是完整的题目:给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。[0,1]因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。[1,2][0,1]
2024-02-21 14:20:17
642
原创 JDK版本的选择
jdk选择哪个版本,对大部分人来说确实不是啥事,万年不变的jdk8,有啥好选择的。但是随着oracle收费政策的改变,以及SpringBoot版本升级带来的改变,有些坑还是要注意下的。
2024-01-11 13:41:50
1583
原创 微信登录--网页授权
我们在使用微信公众号的时候经常会看到以下应用场景,点击公众号菜单打开一个新的网页,然后弹出一个弹框问你是否授权,通过后就能直接用微信号登录这个应用了。
2024-01-09 14:35:54
2050
原创 对接微信公众号
首先使用微信测试号进行测试: 测试号地址使用调试工具进行接口调试: 微信公众平台接口调试工具 url就是服务器接口地址,token是自定义的,等验证的时候后台要用到,后续微信发的消息都是通过这个接口来接收的。服务器校验: 第二步,接收消息,发送消息配置完服务器,就能接收消息了,比如当用户订阅你的公众号,就能收到一条事件推送,消息的格式是xml的 这里面有openId,可以通过openid给用户回复客服消息,当然回复客服消息是有限制的,比如只有当用户发送消息,或者关注公众号时才能回复。获取
2024-01-08 13:50:34
1017
原创 canal1.1.7实战
canal可以用来监听mysql数据库的变化,用来同步数据包下载地址:下载完后,在linux上新建一个canal文件夹,放入tar包解压: tar -zxvf canal.xxx.tar.gz解压完后修改配置文件查看conf/canal.properties,其中canal.port是客户端连接的端口,需要放开,canal.admin.user和canal.admin.passwd是客户端连接的账号。
2023-11-17 16:19:48
1456
原创 gradle PKIX path building failed
这个问题解决了,又有新的问题 Command line is too long. Shorten command line for SpringBootMainApplication or also for Application。这个错初一看是https的证书校验错误,然后网上搜了很多解决方案都不行,最后摸索出来是gradle版本的问题,需要自己指定一个靠谱的gradle版本。最后的错误是PKIX path building failed。这边自己指定gradle版本。
2023-11-15 10:54:02
788
原创 前端组件高级封装技巧--纯干货
基于配置生成页面有个最大的缺陷是不够灵活,只要需求有点变动就要修改生成方法,比如前提表格都是文字,那你配置文件里面只要配置字段名就行了,但如果表格里面要显示图片,麻烦就来了,你要在配置文件里面加个类型,然后改动生成逻辑,如果如上图所示还要再表格里加个按钮,我估计你头都要大了。按照设计模式来说,这种方式违反了开闭原则。对于前端的小伙伴来说,最常见的工作就是写后台管理系统的页面,而后台管理系统最多的操作就是CRUD了,类似下面的,一个搜索框,一个表格,一个分页,然后点击新增编辑有个弹框。
2023-08-16 09:58:43
644
原创 极简Python--列表
列表是有序的,可以通过下标来访问列表中元素,同一个列表中支持不同的数据类型,支持对元素进行增删改查的操作len(ls)正向索引从0开始,反向索引从-1开始输出BYDTOYOTA第一个位置不写默认为0,第二个位置不写默认到最后一个元素,切片长度为第二个值减第一个值输出: ['BYD', 'BMW', 'AUDI']输出: ['Python', 'C++', 'R', 'Java']输出: ['Python', 'C', 'C++', 'R', 'Java']
2023-05-08 15:27:29
1107
原创 极简sklearn-使用决策树预测泰坦尼克号幸存者
泰坦尼克号幸存者数据集是kaggle竞赛中入门级的数据集,今天我们就来用决策树来预测下哪些人会成为幸存者。数据集下载地址:数据集中包含两个csv文件,data为训练用数据,test为测试集。
2023-04-19 11:21:02
1595
1
sql server jdbc 4.2驱动
2020-06-16
sigar资源包及工具列
2018-05-11
adt 22.6 eclipse插件
2014-05-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人