优质好文分享
文章平均质量分 54
GitHub质检员
目前专注于大学生项目实战开发,讲解,毕业答疑辅导以及产品测评、宣传、工具推广等合作。全网粉丝30万+,CSDN特邀博主,Java新星计划多届导师,掘金/知乎/华为云/阿里云/51CTO等平台优质创作者。
展开
-
我把面试问烂了的⭐MySQL面试题⭐总结了一下(带答案,万字总结,精心打磨,建议收藏)
连接池基本原理:数据库连接池原理:在内部对象池中,维护一定数量的数据库连接,并对外暴露数据库连接的获取和返回方法。内连接(inner join):取得两张表中满足存在连接匹配关系的记录。外连接(outer join):取得两张表中满足存在连接匹配关系的记录,以及某张表(或两张表)中不满足匹配关系的记录。交叉连接(cross join):显示两张表所有记录一一对应,没有匹配关系进行筛选,也被称为:笛卡尔积。死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象。原创 2024-02-22 09:19:14 · 864 阅读 · 0 评论 -
双屏工具,win+d只隐藏当前桌面
1、快捷键“win+r”打开运行输入“shell:startup”回车。2.将软件的快捷方式放进来即可-原创 2024-02-22 09:18:38 · 649 阅读 · 0 评论 -
数据库查询重复数据及重复次数
原理是group by 和 having count(*)的运用,分组结果行数大于1就说明有重复数据-count(*)表示重复几次,column表示进行重复筛选的字段,原创 2024-02-22 09:17:56 · 189 阅读 · 0 评论 -
使用POI+hutool导入Excel并把内容添加到数据库中,直接可以用!!!
实现了Excel的导入,并添加到数据表中,圆满完成经理交给的任务!!!!原创 2024-02-21 09:15:03 · 512 阅读 · 0 评论 -
使用mybatis来操作oracle
【代码】使用mybatis来操作oracle。原创 2024-02-21 09:14:27 · 380 阅读 · 0 评论 -
使用idea 把一个git分支的部分提交记录合并到另一个git分支上
需要把自己在分支future-vvip-integral提交的部分记录,合并到线上分支release1.2.1-hotfix上。现把处理过程记录下来,以便以后在遇到同样的需求。原创 2024-02-20 09:20:29 · 3841 阅读 · 0 评论 -
十分钟搞懂RocketMQ,从部署到灵活使用(附示例demo)
RocketMQ介绍应用场景应用解耦数据分发削峰填谷RocketMQ安装下载安装包安装RocketMQ启动RocketMQ搭建可视化监控平台RocketMQ使用消息发送(1)生产者初始化参数介绍(2)消息生产者初始化(3)发送消息消息消费消息消费者初始化参数介绍消息监听这初始化消息消费使用消息队列注意事项Demo下载消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题-实现高性能,高可用,可伸缩和最终一致性架构。原创 2024-02-20 09:19:55 · 1092 阅读 · 0 评论 -
什么是跨域及怎么解决跨域问题?
原理就是html中 的link,href,src属性都是不受跨域影响的,link可以调用远程的css文件,href可以链接到随便的url上,图片的src可以随意引用图片,script的src属性可以随意引入不同源的js文件。但是这样获取数据,必须a.html中的方法名与js中的引用方法名相同,这样就是麻烦很多,最好是a.html能将方法名动态的传给后台,后台返回的引入方法名就用我传给后台的方法名,这样就做到了由前台控制方法名。(强制用JS将它们改成相等的域的话会报跟上面一样的"参数无效错误。原创 2024-02-19 09:19:06 · 949 阅读 · 0 评论 -
什么是抽象类?什么时候用?什么是接口?抽象类与接口的区别?
这时候外面只需要用Db这个接口,他都只需要调用connect,query,close这三个方法就行,而不用管你mysql,mysqli,pdo里都有什么方法,这也就实现了3种数据库随意切换,但是你代码不用改,因为你调用的只有connect,query,close这三个方法。接口就是一个规范,类似于硬件上面的接口,在电脑主板上的PCI插槽的规范就类似于Java接口,只要是遵循PCI接口的卡,不过是什么牌子的都可以插入到PCI插槽中。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。原创 2024-02-19 09:18:24 · 888 阅读 · 0 评论 -
设计模式面试题(总结最全面的面试题!!!)
设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。保证一个类只有一个实例,并且提供一个访问该全局访问点它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式通过代理控制对象的访问,可以在这个对象调用方法之前、调用方法之后去处理/添加新的功能。原创 2024-02-02 09:13:29 · 2307 阅读 · 0 评论 -
摸个鱼的功夫,就学会了MySQL的DATE_FORMAT函数
假设某宝为鼓励大家双12买买买,奖励双十一那天订单最多的两位用户:分别是用户1:“剁手皇帝陈哈哈” 和 用户2:“触手怪刘大莉” 一人一万元;需求1:让你通过MySQL订单表,统计一下双11那天,这两位每小时的购买订单成交数;你会怎么写这条SQL呢?记得几年前我刚接触MySQl,年少轻狂,在得知不用考虑效率的情况下,我写了个接口循环二十四遍,发送24条SQL去查(捂脸),由于那个接口,被技术经理嘲讽~~表示他写的SQL比我吃的米都多。虽然我们山东人基本不吃米饭,但我还是羞愧不已。。原创 2024-02-02 09:12:58 · 477 阅读 · 0 评论 -
拉取GitHub项目到本地
git pull origin master // 拉取远端origin/master分支并合并到当前分支。$ git push origin master // 将当前分支提交到远端origin/master分支-$ git pull origin dev // 拉取远端origin/dev分支并合并到当前分支。push到GitHub的文件要求小于100M。$ git commit -m " 注释"将新建的文件或修改过的文件添加到索引库。本地分支代码保存到本地仓库。从本地提交代码到服务器。原创 2024-02-01 09:27:06 · 660 阅读 · 0 评论 -
解决: Intellij IDEA 运行报错 Command line is too long
2. 网上找到2个方法。方法一我试了有效果。方法二我同事试了有效果。这时候应该点击蓝色的链接,进入 Edit Configuration。修改项目下 .idea\workspace.xml,找到标签-修改command line为JAR manifest即可。原创 2024-02-06 07:00:00 · 734 阅读 · 0 评论 -
记 一次 ORA-00909:参数个数无效
后来恍然大悟发现是自己sql拼写问题,因为之前一直使用mysql开发,使用CONCAT函数拼接模糊插叙的时候都是CONCAT(‘%’,?,‘%’)直接这么拼写的,但是想起Oracle中并不支持这么拼写,需要将CONCAT(‘%’,?,‘%’) 改写成CONCAT(CONCAT(‘%’,?),‘%’),因为在Oracle中CONCAT函数每次只能进行两个字符串的拼接,两个以上就会报错。今天在开发中在给一个sql加查询条件的时候遇到ORA-00909:参数个数无效 报错,然后去查看sql发现参数并没有问题。原创 2024-02-06 05:45:00 · 1112 阅读 · 0 评论 -
Win10设置Win+R快捷方式或保存Path路径消失&无效
右击此电脑 --> 属性 --> 高级系统设置 --> 高级(概率默认进入高级) --> 环境变量 --> 系统变量 --> 双击(Path) – > 新建 --> ‘输入你之前创建的文件夹的位置’ – > 点击确定(编辑环境变量) – > 点击确定(环境变量) ------------------------------------------------------ 完成。在你电脑里的某个位置新建一个文件夹,然后把你经常使用的程序丢进去,最好名字改的简洁点,这样方便启动,(如果你想装X,自便)-原创 2024-02-06 05:00:00 · 1242 阅读 · 0 评论 -
Vue+SpringBoot实现文件的分片下载
(本操作是已经下载Tortoise SVN后 ,通过官网下载汉化包进行的操作)7、进入Settings,选择Language的中文,点击确定即可。5、找到自己下载的汉化包,点击下一步,依次进行即可,便会自动同步。4、进入到下载页面,选择适合自己版本的安装包,我下载的是。6、右键打开TortoiseSVN,选择Settings。2、进入到官网首页,点击Translations。3、进入到翻译页面,点击download。8、至此,完成所有操作,下图为成功截图。原创 2024-02-05 01:00:00 · 617 阅读 · 0 评论 -
Tortoise SVN 汉化(官网下载汉化包)
(本操作是已经下载Tortoise SVN后 ,通过官网下载汉化包进行的操作)7、进入Settings,选择Language的中文,点击确定即可。5、找到自己下载的汉化包,点击下一步,依次进行即可,便会自动同步。4、进入到下载页面,选择适合自己版本的安装包,我下载的是。6、右键打开TortoiseSVN,选择Settings。2、进入到官网首页,点击Translations。3、进入到翻译页面,点击download。8、至此,完成所有操作,下图为成功截图。原创 2024-02-05 00:45:00 · 4366 阅读 · 1 评论 -
SVN使用教程总结
它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。可以在窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等.等待安装完成后,点击【next】,进入下一步:如下图。原创 2024-02-04 03:45:00 · 767 阅读 · 0 评论 -
SVN使用笔记
连接svn服务器项目仓库并检出项目-原创 2024-02-04 04:30:00 · 373 阅读 · 0 评论 -
SVN配置及简单操作(HM程序员课程最全笔记)
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。也就是说 Subversion 管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository) 中。这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。原创 2024-02-03 05:15:00 · 153 阅读 · 0 评论 -
Sql优化总结!详细!(2021最新面试必问)
记住实现业务优先,实在没办法,就只能使用,并不是不能使用。SQL提供了explain关键字,它可以分析你的SQL执行计划,看它是否最佳。避免同时修改或删除过多数据,因为会造成cpu利用率过高,会造成锁表操作,从而影响别人对数据库的访问。列有大量重复数据,Mysql查询优化器推算发现不走索引的成本更低,很可能就放弃索引了。模糊查询,程序员最喜欢的就是使用like,但是like很可能让你的索引失效。大量数据提交,上千,上万,批量性能非常快,mysql独有。满足复合索引的左侧顺序,哪怕只是部分,复合索引生效。原创 2024-02-03 05:00:00 · 978 阅读 · 0 评论 -
Springboot项目同时接收多个文件和多个参数
最近手头项目有个接口,需要同时接收多个图片文件上传,并且还要接收一个入参对象,记录一下接收的方式;在下图中的接口中,没有添加注解,因为前端在传递参数的时候,消息头中的定义了消息体的请求格式,如果使用了注解,则消息体只能是,而这里接收多文件,所以消息体的请求格式应该是。@Valid注解可以正常使用。原创 2024-02-01 09:16:23 · 880 阅读 · 0 评论 -
SpringBoot 面试问题2023总结(最新典藏版)
Redis是我们日常在工作中使用非常多的缓存解决手段,使用缓存,能够提升我们应用程序的性能,同时极大程度的降低数据库的压力。但如果使用不当,同样会造成许多问题,其中三大经典问题就包括了缓存穿透、缓存击穿和缓存雪崩。是不是听上去一脸懵逼?没关系,看完这篇就明白了。原创 2024-02-01 09:15:50 · 637 阅读 · 0 评论 -
Redis面试高频题:说说缓存穿透、击穿、雪崩
Redis是我们日常在工作中使用非常多的缓存解决手段,使用缓存,能够提升我们应用程序的性能,同时极大程度的降低数据库的压力。但如果使用不当,同样会造成许多问题,其中三大经典问题就包括了缓存穿透、缓存击穿和缓存雪崩。是不是听上去一脸懵逼?没关系,看完这篇就明白了。原创 2024-01-31 09:06:00 · 411 阅读 · 0 评论 -
Oracle中字符串截取最全方法总结
此处截取源字符串SOURCE_CODE,从第1个字符开始,由于代表城市的code长度不固定,我们无法确定截取几个字符,所以使用instr函数判断第一个’_'字符的位置,进而确定每个SOURCE_CODE截取几个字符串。是因为**INSTR (SOURCE_CODE, ‘_’, 1, 1)**获取的是源字符串中’_'字符第一次出现的位置,再减1就得出了CITY字符个数。)开始,截取个数为:第2个’_‘出现位置减去第1个’_‘出现位置,此时还多了一个下划线’_',:表示源字符串,即要截取的字符串。原创 2024-01-31 09:05:26 · 15776 阅读 · 0 评论 -
Oracle行转列详解
1.1、建表(-values (1, ‘张三’, ‘语文’, 67);values (1, ‘张三’, ‘数学’, 76);values (1, ‘张三’, ‘英语’, 43);values (1, ‘张三’, ‘历史’, 56);values (1, ‘张三’, ‘化学’, 11);values (2, ‘李四’, ‘语文’, 54);values (2, ‘李四’, ‘数学’, 81);values (2, ‘李四’, ‘英语’, 64);原创 2024-01-30 09:20:18 · 6059 阅读 · 0 评论 -
Oracle日期加减
Oracle中日期进行加减可以使用多种方式,以下介绍三种一种是针对天的操作,适用于对日,时,分,秒的操作,一种是对月的操作,适用于月,年的操作,一种是使用INTERVAL函数,适用于年,月,日,时,分,秒的操作。原创 2024-01-30 09:19:47 · 2165 阅读 · 0 评论 -
Oracle 查询表字段 注释 以及表的注释
声明:Oracle 中查询字段注释和字段时,表名都必须大写。原创 2024-01-29 09:10:59 · 3149 阅读 · 0 评论 -
ORACLE sql 排序 根据两个条件排序,根据日期由小到大排序,同时如果另一个字段符合某个条件的话就优先排列
现在 我们需要对表里的数据进行排序,需求是这样的:数据按照日期排序,时间早的的排在前面 ,但是表中bxxl字段的内容是‘紧急管网报修’的话 我们需要对其进行优先排序。接下来直接看实现sql以及最终实现效果。原创 2024-01-29 09:10:24 · 322 阅读 · 0 评论 -
oracle case when 多条件_‘【Oracle】常用CURD操作示例
使用NULLIF(a,b)通用函数,在类型一致的情况下,如果a与b相同,返回NULL,否则返回a,比较10和10.0是否相同。使用NVL(a,b)通用函数,统计员工年收入,NVL()作用于任何类型,即(number/varchar2/date)*号适用于表字段较少的情况下,如果字段较多,扫描多间多,效率低,项目中提倡使用某一个非null唯一的字段,通常是主键-使用NVL2(a,b,c)通用函数,如果a不为NULL,取b值,否则取c值,统计员工年收入。除10号部门外,查询部门平均工资大于2000元的部门,原创 2024-01-26 10:00:18 · 801 阅读 · 0 评论 -
Oracle 19C 创建用户&表空间
注意:我们给用户赋予新建的表空间权限的时候,一定要重启一下数据库,否则会失败。声明:本次操作基于win10系统安装Oracle 19C。关闭数据库:shutdown immediate。1.创建用户需要管理员权限-运行 cmd 按如下输入命令。ORACLE 例程已经关闭。启动 startup。原创 2024-01-26 09:59:44 · 683 阅读 · 0 评论 -
OpenFeign的介绍和使用(服务接口调用)
使用案例可以参考:https://www.cnblogs.com/my-ordinary/p/12508997.htmlFeign:假装,伪装的意思。原创 2024-01-25 09:14:12 · 1652 阅读 · 0 评论 -
navicat连接异常,错误编号2059-authentication plugin…
我MySQL版本为mysql-8.0.15,navicate使用的是12.0.8版本的。出现此错误的原因为MySQL8.0之前使用mysql_native_password方式进行加密,现在使用caching_sha2_password版本加密(对!在使用navicate对mysql数据库进行可视化管理时,报错,错误编号2059:authentication plugin ‘caching_sha2_password’,如下图所示。现在,你可以愉快地使用navicat对你的MySQL数据库进行管理了。原创 2024-01-25 09:13:22 · 1794 阅读 · 0 评论 -
mysql数据库设置非主键字段为不可重复
这时会在dbname数据库的table表中的fieldname字段添加Unique类型的索引,使用navicat查看时是这样的,在navicat中手动添加此索引效果也是一样的-数据库名为dbname,表名table,字段名fieldname.-MySQL命令行中(5.6)-原创 2024-01-23 10:11:08 · 501 阅读 · 0 评论 -
MyBatis中实体类属性和数据库中字段不一致的情况
发现只有姓名username封装了进去,因为在windows操作系统下,Mysql数据库中的字段不区分大小写,集数据库中的username和实体类中的UserName-使用resultMap属性将数据库中的字段名和实体类中的属性名对应起来-占位符一定要和属性名保持一致,否则就会报错:-起别名之后的查询所有用户:-很明显,起别名的方式太麻烦了。执行查询所有用户的操作:-注意数据库中的字段名:-注意实体类中的属性名:-注意数据库中的字段名:-注意实体类中的属性名:-之前的查询所有用户:-可以完全查询出来:-原创 2024-01-23 10:10:32 · 994 阅读 · 0 评论 -
mybatis中大于等于小于等于的写法
【代码】mybatis中大于等于小于等于的写法。原创 2024-01-22 09:23:42 · 761 阅读 · 0 评论 -
mybatis中大于等于小于等于的写法
【代码】mybatis中大于等于小于等于的写法。原创 2024-01-21 03:30:00 · 753 阅读 · 0 评论 -
mybatis传入的值为0时的判断
或者将0转化为String类型,也可以解决该问题。原创 2024-01-21 00:45:00 · 941 阅读 · 0 评论 -
mybatis-plus使用selectById查询时表的主键不是id字段的解决办法
今天项目中新建了一张表,表的主键是area_code,在程序中直接使用mybatis-plus内置的selectById方法进行表数据查询,查询时直接报错: 运行时异常: Invalid bound statement (not found): com.huanong.avatar.shuidi.mapper.SdWeatherThresholdMapper.selectById。mybatis的selectById方法默认使用的主键名是id,而数据库中表的id是area_code,所以查询时会报错。原创 2024-01-20 03:45:00 · 1034 阅读 · 0 评论 -
mybatis plus 使用lambda操作复杂的and、or语句
【代码】mybatis plus 使用lambda操作复杂的and、or语句。原创 2024-01-20 03:45:00 · 1330 阅读 · 0 评论