- 博客(36)
- 收藏
- 关注
原创 记一次NULL与空字符串导致的分组后产生重复数据
挺奇怪的,最后去库里看了一下,发现gender除了1与0外,为空时有两种情况:Null与空字符串。怀疑group by的时候,把Null和空字符串,当成了两种不同的数据来处理。,这样无论是建索引,还是分组,排序等,都会方便一些,不用额外考虑NULL值和空字符串。现要统计人员信息,sex为0代表女生,sex为1代表男生,为空则是未统计状态。使用IFNULL函数,当字段值为NULL时,转为空字符串来参与分组。,那么NULL和空字符串会被存储为。因此,我们在设计表时,字段最好是。,存储方式也是相同的。
2024-08-24 17:49:53
493
原创 Spring Boot项目中集成连接池及部分细节说明
为了节省数据库资源与提升运行效率,一般都会在项目中集成连接池,平时只是引入依赖,写好配置就直接用了,很多细节没有考虑过,这里做一下记录。
2024-01-30 20:15:00
2812
3
原创 Spring Boot项目中解决跨域问题(四种方式)
开发项目的时候因为浏览器同源策略的限制,经常会遇到跨域问题,本篇文章对常见的跨域解决方案做一个记录。
2024-01-26 13:00:42
15797
3
原创 VM Ware在桥接模式下无法联网
在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致。VM Ware是一款常用的虚拟软件,我们可以在Windows系统上安装该软件,加载相应的镜像后可以运行对应的操作系统。虚拟机的IP要与物理机的IP在同一网段,且对应的子网掩码、网关和DNS相同。
2023-10-30 10:34:51
1179
原创 Java程序中调用Python脚本(兼容Windows与Linux)
想实现如下功能,项目后端架构是Spring Boot,某个功能需要调用Python脚本来实现,调用Python脚本的功能要兼容Windows和Linux,即可以运行在Windows和Linux两种平台上。
2023-10-15 22:44:21
699
原创 MyBatis动态SQL大全
动态SQL是MyBatis的强大特性之一。在JDBC或其它类似的框架中,通常需要开发人员手动拼接SQL语句。根据不同的条件拼接不同的SQL语句是一件及其麻烦的事情,例如:拼接是要确保添加了必要的空格,还要注意去掉列表最后一个列名的逗号。动态SQL一般是根据用户输入或外部条件动态组合的SQL语句块。通过一些条件的判断,可以实现在不同情况下执行不同的SQL语句,避免了手动拼接SQL的麻烦,不过动态SQL有时候在执行性能上面不如动态SQL,而且使用不恰当,往往会在安全方面存在隐患。如SQL注入的攻击。
2023-09-03 14:08:44
1566
原创 分布式环境集成JWT(Java Web Token)
AuthAccess是一个自定义的注解,在拦截器中判断如果方法上有加入该注解,则放行,不校验tokenimport cn//如果不是映射到方法直接通过 if(!} else {// 判断是否为自定义注解AuthAccess,如果是,就不校验了,直接放行 HandlerMethod h =(HandlerMethod) handler;= null) {} } //执行认证 if(StringUtils . isBlank(token)) {
2023-08-30 00:24:10
1152
原创 佛祖保佑,永不宕机,永无bug
将这些文件写入到.txt文件中,命名随意。将文件放入项目的resources下,和application.properties同级目录。之后在项目的配置文件application.properties或是application.yml中配置banner的路径即可。当我们的程序编译通过,能预防的bug也都预防了,其它的就只能交给天意了。当然请求佛祖的保佑也是必不可少的。再次启动项目,可以发现日志输出已经变了。
2023-08-11 23:57:08
3438
原创 分布式ID-Leaf
分布式唯一id生成方式,Leaf Segment,Leaf Snowflake,模块集成到自己的项目中,ClassNoDefException,依赖版本冲突。
2023-06-03 09:41:02
705
原创 Spring Boot项目瘦身
瘦身:thinBody,又称“减肥”、“减重”,就是合理,科学的减轻自身重量。Spring Boot应用瘦身顾名思义就是:将Spring Boot应用打包后的jar包,利用合理的方式,方法减小体积。
2023-05-06 23:41:41
1138
原创 SpringBoot+Vue项目部署(传统方式)
虽然项目打包后用jar包里的配置文件也可以启动,但是推荐将配置文件提取出来,一般开发环境和生产环境的配置是不一样的,通过加载外部配置文件的方式启动,更便于维护配置信息,这里生成一个web-server.yml的配置文件,里面是项目的配置信息,可以根据项目实际需要生成。为了方便,有时候我们会连接本地的MySQL数据库,数据库安装成功后默认远程连接是关闭的,3306端口也是不对外开发的,需要做如下配置。项目在本地可以正常启动,这是因为本地有安装JDK,数据库等,若想要项目在服务器上也能正常启动,则同样需要。
2023-04-09 17:20:37
6178
1
原创 Jmeter使用教程
Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。as folder does not exist and parent folder is not writable
2023-02-25 11:16:20
7313
2
原创 Redisson分布式锁
有一个创建人员信息的模块,前端页面中输入人员相关信息,点击“保存”按钮发送请求,后端收到请求后开始处理,生成主键ID及其它信息,安全起见可以在保存人员信息方法上加一个synchronized锁或者是ReentrantLock锁,最后将人员信息保存到数据库中。假如:前端没有控制好,第一次点击“保存”按钮后,并没有将按钮置为无效,客户点了两次“保存”按钮,发送了两次请求,这样会怎么样?通过Redisson的单线程特性,在保存人员信息前先获取锁,获取成功后才执行。为什么需要分布式锁呢?
2023-02-16 11:36:24
660
原创 Java对象复制(直接赋值,浅拷贝,深拷贝)
可以发现原对象user1中的Student引用类型对应的值改变后,拷贝对象user2中的student值也跟着变了,说明拷贝后的对象中的引用类型与原对象的引用是同一个。在Java语言里深复制一个对象,常常可以先使对象实现Serializable接口,然后把对象(实际上只是对象的一个拷贝),写到一个流里,再从流里读出来,便可以重建对象。原user1对象中student引用的实例值改变了,拷贝后的对象中引用的实例值没有变,说明它们两个不是同一个引用。创建一个新对象,然后将当前对象的非静态字段复制到该对象,
2023-01-30 12:18:43
19742
4
原创 Linux系统常见问题总结(持续更新)
这个文件名是上次未编辑完的文件,后面又多了一个.swp的后缀,执行ls命令以后没找到这个文件,但是如果用ls -a就会发现,在docker-compose.yml同级的地方,有一个".docker-compose.yml.swp",最简单的办法就是删掉它。有一次将一个文件用vim编辑器打开,中途有事出去了一下,回来发现Xshell连接断开了,重连以后想继续编写之前的文件,输入vim test.txt,无法正常打开,有几个提示,让选择打开的方式。进入对应的目录下,查找磁盘空间中的大文件。
2023-01-30 10:23:28
881
原创 Linux终端操作-Xshell和Xftp(家庭版)
Linux系统本身自带的shell终端可以进行人和系统的交互,但在实际的工作中,一个系统会有多个开发人员登录,此时自带的终端就无法满足需求了,一般都是借助第三方工具连接到虚拟机,实现多个用户同时操作。点击下载,跳转到下载页面,目前官网提供了学校和家庭用户的免费使用版本,并且从2022年2月16日开始,免费版本的标签限制也被删除了。直接修改最前面的盘符即可,后面的地址可以不用动,会自动创建目录,安装Xftp的时候也建议这样设置盘符。建议安装在除C盘以外的盘,
2022-11-23 12:37:32
1793
原创 vue报错:Parsing error: Unexpected token, expected “,“ eslint
Parsing error: Unexpected token, expected ","
2022-07-29 10:31:19
9067
1
原创 Typora+GitHub打造专属云笔记
一, TyporaTypora一款非常优秀的编辑器,对markdown语法有着非常好的支持,通过简单的方式便可书写漂亮的文档1,Typora下载官网地址:Typora进入官网后选择对应的Typora下载即可,目前有OS,Windows,Linux等2,Typora设置Typora下载安装后可以自己定义主题,软件自带的主题是GitHub的,Newsprint等,个人比较喜欢Vue主题文件——>偏好设置——>外观——>主题二,GitHubGitHub是全球最大的代码
2020-10-06 13:36:54
3894
原创 开启/关闭Typora拼写检查
前几天下载了一个Typora,据说这个软件能较完美的支持Markdown格式,用了一下感觉还不错,可惜里面有一个功能让人有点难受,写完英文以后报了一大堆错误,像下面这样子:可能是我写错了吧,但怎么可能承认。。。鼠标移到页面右下角统计字数的地方,之后左边会弹出一个提示框,点击即可出现下列选项,勾选“不使用拼写检查”OK!搞定了,不会再提示我写错了。。。。...
2020-08-05 22:24:10
15389
12
原创 IDEA创建mapper模板
在使用mybatis框架与数据库交互时,都要编写xml文件,该文件一般都是存储在mapper文件夹下,文件的头部一般是固定的,创建模板有利于提高编码速度1,找到file——>settings——>editor——>file and code templates2,点击“+”3,创建mapper模板说明:模板可以根据自己的实际需要进行设置<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE mapper PUBL
2020-07-13 17:04:19
3547
原创 从零开始编写数据库sql脚本并运行
编写sql脚本一,概述在日常开发中,我们一般是通过数据库的可视化软件例如Navicat来管理数据库,包括创建删除修改等,这无疑是非常便捷的,但是当进行项目搬迁的时候,用Navicat一个一个的重新进行编写,就有点麻烦了,尤其是如果数据库中要插入大量的数据时,此时如果通过sql脚本,那将大大的减少我们的工作量。二,下面我们就来编写一个简单的sql脚本:1,创建数据库创建数据库时我们需要指定数据库的编码格式,以及数据库的编码排序规则,详细的代码如下:drop database if EXISTS d
2020-07-11 23:24:09
28614
原创 IDEA中导入lib目录下的jar包到项目中
目前在项目开发中,大多数是采用了Maven工厂来进行相关的jar下载,但是有时候也会复制别的jar包到lib目下,但是直接复制后是不能起作用的,本文介绍如何将lib目录下的jar包导入到项目中
2020-07-11 22:31:10
5187
原创 记录请求转发时HttpServletRequest和Model出现的问题
请求转发引起的session问题今天在做一个小项目时出现了这样一个问题,在用户登录成功后需要跳转到用户操作界面,在跳转之前顺带的将用户要操作的信息从数据库中查出放入了会话中,之后会在跳转到的页面中显示出来,当时想当然的以为这样子应该没问题,可是后来死活显示不出来,搞了半天也没想明白,代码大概如下所示:服务器处理代码: @RequestMapping(value = "/findAll") public String findAll(HttpServletRequest request) {
2020-07-07 19:28:41
532
原创 Maven工厂安装与配置
Maven是目前一款流行的项目管理软件,通常和框架搭配使用。之前学习过Maven,但是好久不用现在有点忘了,不得已又从网上找了参考教程,今天刚好趁着这个机会记录一下,方便自己以后查看1,下载地址:maven.apache.org(电脑如果没有连接外网该网站可能进不去)2,进入页面后点击左侧“Download”,选择“apache-maven-3.6.x-bin.zip”即压缩包,下载完成后解压3,解压后打开,进入到文件夹的bin目录下,复制该地址4,在“此电脑/我的电脑”右键——>属性——
2020-06-11 00:39:12
482
原创 中文乱码解决——web与mysql间数据传输乱码问题
网页到数据库传输中文乱码问题解决最近在学习web有关的知识,昨天学到从网页上输入相关信息,然后存储到MySQL数据库中,代码运行都没有问题,数据可以存进去,写完测试的时候随手输了几个字符,看到能显示就再没管,今天输入了几个中午以后发现出现了乱码,刚开始觉得应该是字符编码没设置成UTF—8,把编码都设置好以后结果还是乱码。网上又找了资料还是没解决,后来看到说是加个过滤器就好了,试了试果然正确。...
2020-03-08 13:11:35
459
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人