- 博客(84)
- 资源 (1)
- 收藏
- 关注
原创 根据IP地址获取归属地
如果使用API接口获取,可能会出现服务挂了,或者服务地址不提供服务了等问题。本文采用离线IP地址定位库 Ip2region,Ip2region是一个离线IP地址定位库,微秒的查询时间。这里Searcher引用的是仓库里面的检索方法,到这里就完成了可以获取到ip对应的归属地。3、解决办法,在pom文件中增加下面的配置,打包时不压缩后缀为xdb格式的文件。包后读取到的文件流大小发生变化,无法根据ip识别到对应的地址信息。打成jar包后,在依赖项目中运行,读取到的文件流如下图。1、正常读取到的文件大小如下图。
2024-03-26 09:38:43
886
原创 安装pytorch报错torch.cuda.is_available()=false的解决方法
在安装torch之后,命令行(Anaconda Powershell Prompt)运行这三行代码:返回结果始终为False。如果是清华镜像加速下载的,无论你是重装多少次,都一样,torch.cuda.is_available()返回false。因为你被conda镜像安装给坑了。你以为下载的是GPU版本,其实镜像下载的是cpu版本你必须手动去官网用pip下载安装。首先判断自己是否适合使用GPU版本的torch,打开自己的cmd输入这里的11.1 指的是可驱动的最高版本。下载CUDA的版本应低于1
2023-11-01 15:04:00
3320
原创 常用conda和pip命令总结
env_name 是环境名,自己换成所要创建的虚拟环境的名字python=x.x 是版本号,比如3.7,3.8这样。
2023-10-29 22:40:14
538
原创 python环境安装
Anaconda,中文大蟒蛇,是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。1、Anaconda 附带了一大批常用的数据科学包它附带了conda、Python和150多个科学包和依赖项。因此,安装完Anaconda你可以立即开始处理数据。2、Anaconda可以管理包Anaconda是在codna(一个包管理器和环境管理器)上发展出来的。
2023-10-20 15:35:04
312
原创 Semaphore使用以及原理
Semaphore(信号量)是一种用于控制并发访问资源的机制。它可以用于多线程或多进程环境中,用于保护共享资源的访问,避免竞争条件和死锁。
2023-10-13 15:41:48
296
原创 @JsonDeserialize和@JsonSerialize注解的使用
JsonDeserialize:json反序列化注解,作用于setter()方法,将json数据反序列化为java对象。可以理解为用在处理接收的数据上。
2023-09-11 09:17:11
2681
原创 mybatisPlus、BigExcelWriter大数据量流式查询并导出
对于大量数据输出,采用EasyExcel.write()或者hutool的ExcelWriter容易引起内存溢出,因此有了BigExcelWriter。Oracle的fetchSize建议设置成1000,MySQL的fetchSize建议设置成Integer.MIN_VALUE。因此流式查询则使用数据库游标,查一行处理一行,消耗内存较少,不阻塞数据库IO,在大数据处理场景中推荐使用。DAO层的流式处理函数的声明。
2023-08-06 21:56:29
1662
原创 mysql 字段类型 linestring
在MySQL中,LineString是一种用于存储和操作几何线的字段类型。它可以用于存储一系列的坐标点,以便表示一条线或曲线。
2023-07-28 16:45:04
2308
1
原创 使用fastjson序列化后字段属性发生了变化
使用 fastjson 进行 JSON 序列化存储到数据库后,发现 JSON 字符串“莫名其妙地”多了一些属性,也少了些属性。问题出现在基本类型的布尔类型以 is 开头的属性。
2023-07-14 17:31:47
606
原创 idea切换Git分支时保存未提交的文件
现在需要开发一个新功能A时,我们需要从Dev分支上创建一个新的功能分支tenant,然后我们就在这个分支上进行开发。假设有一天,你正在开发,本地已经在tenant上修改了几个文件,但是功能还没有完全开发完成,你不想commit,此时测试跟你说在现在的一个测试分支master上有1个Bug,希望你去修复。
2023-07-07 18:05:28
1632
原创 了解浏览器缓存
last-modified 最后修改时间,服务端在Header上给出的资源最后修改时间。第一次请求资源时,服务端会在响应Header中会返回last-modified字段。
2023-06-30 17:30:35
1854
原创 SpringBoot 实现 PDF 添加水印
在某些情况下,我们需要对 PDF 文件添加水印,以使其更具有辨识度或者保护其版权。Free Spire.PDF for Java 是一款免费的 Java PDF 库,它提供了一个简单易用的 API,用于创建、读取、修改和提取 PDF 内容。PDFBox 是一个流行的、免费的、用 Java 编写的库,它可以用来创建、修改和提取 PDF 内容。PDFBox 提供了许多 API,包括添加文本水印的功能。iText 是一款流行的 Java PDF 库,它可以用来创建、读取、修改和提取 PDF 内容。
2023-06-16 17:24:00
3091
2
原创 nginx的root、alias指令配置区别
上面的配置也可以改成root目录配置,如下,这样nginx就会去/home/www/huan下寻找http://www.wangshibo.com/huan的访问资源,两者配置后的访问效果是一样的!在上面alias虚拟目录配置下,访问http://www.wangshibo.com/huan/a.html实际指定的是/home/www/huan/a.html。alias指定的目录后面必须要加上"/",即/home/www/huan/不能改成/home/www/huan。
2023-05-28 16:50:44
1226
原创 MySQL中的BLOB类型
BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。
2023-04-21 17:32:43
4078
原创 nginx学习
3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。1、修改nginx配置文件,我们在配置文件中增加以下配置。2、进入nginx安装目录sbin下,输入命令./nginx -t,检测配置文件是否正确。
2023-02-19 21:21:18
343
原创 FastJson序列化和反序列化时处理数据
日常开发中,数据库会存储json字符串,json字符串中可能会存在一些敏感信息,比如身份证号手机号需要加密,此时我们可以在json序列化和反序列化时处理需要处理的字段信息。
2023-02-10 17:06:25
1496
原创 easyExcel验证表头与模板是否一致
在监听器中重写invokeHeadMap,校验表头与模板是否一致,比如读取数据时我们写从第二行开始读,会认为第零行和第一行是表头,这里会读取到两次表头,根据下标和表头内容可以验证表头与模板是否一致。为了保证数据的完整性,当模板被修改后,就不应该导入数据,
2023-02-03 15:47:23
4041
1
原创 List、List<Object>、List<?>
声明的集合进行添加的元素的限制:不可对其添加任何类型元素,因为在编译阶段无法知道其准确的泛型类型,随意add()方法无法通过编译检查。1、声明的List集合对其 所指向的集合对象(就是赋值的集合对象)的限制:无泛型限制,并且无视指向的集合对象的泛型,直接当成List处理(泛型擦除)1、声明的List 集合对其 所指向的集合对象(就是赋值的集合对象)的限制:泛型必须是Object,即必须是ArrayList。2、对用List 声明的集合进行添加的元素的限制:无类型限制,也就是只要是Object就行。
2022-12-30 16:32:46
1680
原创 distinct与group by 去重
distinct简单来说就是用来去重的,而group by的设计目的则是用来聚合统计。单纯的去重操作使用distinct,速度是快于group by的。distinct 是针对要查询的全部字段去重,而 group by 可以针对要查询的全部字段中的部分字段去重,它的作用主要是:获取数据表中以分组字段为依据的其他统计数据。两者执行方式不同,distinct主要是对数据两两进行比较,需要遍历整个表。
2022-12-25 20:15:05
5832
原创 json解析异常显示{“$ref“:“$[0]“}
将获取的对象集合转换成json字符串后,字符串中包括"ref": "$[0].optionScores[0]"符号,解析异常。其实是因为上图中,异常符号出现的位置与我圈住的位置值相同,因此出现了循环引用。正常转换成json字符串。1、取消循环引用检查。2、字段禁用循环引用。
2022-12-16 15:49:39
1901
原创 mybatisPlus更新字段值为null
用Mybatis-Plus的update()或者updateById()来更新数据时,无法将字段设置为null值(更新后数据还是原来的值)。更新时直接将值设置为null。更新策略默认是不为Null。在实体的某个字段上设置。
2022-12-11 18:44:19
5505
2
原创 hutool反射工具-ReflectUtil
Java的反射机制,可以让语言变得更加灵活,对对象的操作也更加“动态”,因此在某些情况下,反射可以做到事半功倍的效果。Hutool针对Java的反射机制做了工具化封装,封装包括:
2022-12-03 19:04:54
6907
1
原创 Hibernate-validator自定义扩展
Target({String message() default "请输入合法的证件号码";Class
2022-11-25 16:26:06
398
原创 JAVA中Function的使用
表示接受一个参数并产生结果的函数。将此函数应用于给定的参数。super V,?返回一个组合函数,首先将before函数应用于其输入,然后将此函数应用于结果。如果任一函数的评估引发异常,则将其转发给组合函数的调用者。super R,?返回一个组合函数,首先将此函数应用于其输入,然后将after函数应用于结果。如果任一函数的评估引发异常,则将其转发给组合函数的调用者。返回一个总是返回其输入参数的函数。
2022-11-20 16:19:19
14075
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人