- 博客(120)
- 收藏
- 关注
原创 SQL练习(五)
28、求1997年各个月入职的的员工个数(考察知识点:组函数)30、查询每个部门,每种职位的最高工资(考察知识点:分组)29、查询每个部门的最高工资(考察知识点:分组)27、显示各种职位的最低工资(组函数)31、查询各部门的总工资。
2023-06-04 22:32:30 402
原创 我的创作纪念日
在这力量的吸引下,开始渐渐的喜欢热爱这个技术,对于固定不变的代码我更喜欢瞬息万变的编程思想,希望在这个群雄争霸的时代下,我能得到一个能够让我展示自身实力的舞台,一个能让我不断提升实力,让我了解编程思想如何完美使用的舞台。在创作作品时,看到数据的增长会有一种成就感,这种感觉会更好的鼓励我进步的决心。每发布一个作品的时候都是对上课内容的一次复习,对此次课时的理解更加深刻。作为一名学生,专业老师为我们将来就业做准备,将每周写博客作为一项作业,让我们以这种方式来记录我们的成长与技术的提升。
2023-06-04 22:08:23 368
原创 sql练习(四)
23、请用两种的方式查询所有名字长度为8的员工的员工编号,姓名。22、求2002年下半年入职的员工(考察知识点:单行函数)24、打印下半年入职的员工信息(单行函数)26、打印入职时间超过10年的员工信息。25、打印本周的星期一时间信息。
2023-06-04 21:55:04 358
原创 SQL练习(三)
19、把hiredate列看作是员工的生日,求本月过生日的员工(考察知识点:单行函数)20、把hiredate列看做是员工的生日,求下月过生日的员工(考察知识点单行函数)21、请用三种以上的方式打印2021年入职的员工(考察知识点:单行函数)16、查询80号部门中last_name以n结尾的所有员工信息。17、查询所有last_name由四个字母组成的员工信息。18、查询first_name中包含“na”的员工信息。
2023-05-23 19:31:14 362
原创 SQL语句练习(二)
13、查询入职时期在2020-5-1到2020-12-31之间的所有员工信息。12、查询提成(commission——pct)为0或者NULL的员工信息。14、显示姓名中没有显示‘L’字样的员工详细信息或含有‘SM’字的员工信息。11、查询工资高于7000但是没有提成的所有员工。15、查询电话号码以8开头的所有员工信息。
2023-05-22 18:42:40 172
原创 SQL语句练习
3、 查询所员工的email全名,公司email 统一以 " @sina.com " 结尾。9、查询80号部门工资大于8000并且提成高于1.0的员工姓名,工资以及提成。10、查询职位(job_id)为'AD_PRES'的员工的工资。7、查询50号部门每人增涨1000元工资后的人员姓名以及工资。8、查询80号部门工资大于7000的员工的全名以及工资。2、打印公司里所有的manager_id。6、查询50号部门的员工姓名以及全年工资。5、查询80号部门的所有员工。1、统计每个部门的员工人数。
2023-05-22 18:21:07 433
原创 什么是IP 掩码 网关 DNS
使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器,与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。DNS:(Domain Name System 的缩写)的作用非常简单,就是根据域名查出对应的 IP 地址,你可以把它想象成一本巨大的电话本,换句话说,DNS 是将域名映射到响应 IP 地址的服务。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。
2023-05-19 08:31:12 302 1
原创 IP子网掩码的分类规则
大型网络包含大量的主机,而小型网络包含少量的主机。为了满足不同场景的需要,网络必须使用一种方式来判断 IP 地址中哪一部分是网络 ID,哪一部分是主机 ID。IP 地址为 32 位地址,被分为 4 个 8 位段。B 类:前 16 位表示网络 ID,后 16 位表示主机 ID;A 类:前 8 位表示网络 ID,后 24 位表示主机 ID;C 类:前 24 位表示网络 ID,后 8 位表示主机 ID;该地址分配给任何需要的人使用。D 类:不分网络 ID 和主机 ID;E 类:不分网络 ID 和主机 ID;
2023-05-19 08:30:48 86
原创 SpringBoot默认可以识别JSP文件吗?怎么处理?
SpringBoot默认可以识别JSP文件吗?不能,SpringBoot默认无法识别很多文件,如JSP文件、XML文件,但是可以通过文件设置,让SpringBoot识别这些文件内容。SpringBoot的项目大多是基于Maven下创建的,所以实现SpringBoot识别JSP文件,需要在pom.xml文件中进行插件插入。
2023-05-19 08:28:52 75
原创 谈谈你对“约定大于配置”的理解
约定大于配置,在SpringBoot框架的开发者眼中,很多开发者都会遵守开发准则,都已经形成了一个非常良好的开发习惯,可以理解为,现在的我们素质变高了,不会再乱扔垃圾了,在约定大于配置没有出现之前,你乱扔垃圾,也就是不道德,但不违法。在开发中,没有这个约定的时候,运行不会给你报错,只会给你提示,但是出现这个约定之后,他会给你直接报错,并且不会详细的把报错点提供给你。在SpringBoot框架中,对于已经形参好习惯的程序员来说,简直就是神仙框架,只要遵守约定,你就可以享受SpringBoot带来的极致享受。
2023-05-19 08:28:31 223
原创 什么是Shiro?默认主配置文件是什么?
Shiro的认证是通过从数据库获取值进行比对,成功则进入,失败则被拦截在外。当你成功入职进入公司后,则是要到人事部获取自己的工作牌和新人手册,人事部会根据你的职位告诉你你的职责,工作区域等多个你可利用的资源,这对应的就是Shiro的授权和资源分配,当大管家给你授权之后,还会根据你的职责分配你所能利用的所有资源。这就是shiro的大致功能的理解。Shiro作为目前最火热的安全框架,他的强大功能深受很多编程大佬的喜爱,Shiro可以帮助开发者实现认证、授权、加密、会话管理、web继承、缓存等多种功能。
2023-05-18 16:57:52 107
原创 Shiro退出机制是什么?
实现步骤如下,首先在Shiro配置文件下注明/logout=logout,这样当访问根路径logout时,可以直接跳转到logout的逻辑代码中去,在logout的contrller中需要利用session的 getAttributeNames方法进行获取内容,然后使用while循环调取session的删除方法将session作用域中的内容全部删除,然后再利用subject的api getsubject方法获取subject的内容,然后调取logout方法进行删除subject内容。
2023-05-18 16:43:40 213
原创 Shiro为什么要先认证后授权
我的理解是,首先Shiro的安全机制就像一所高中一样,而进入学校这需要进行认证,认证标识则为学生卡,当学生进入学校时只需要刷卡认证即可进入学校,而一些非法人员,则无法通过。授权,就可以理解为是校长在分发身份,对于一所学校来说,学生众多校长不可能全部认识,所以如果直接授权的话,可能会出现安全隐患。而Shiro不先进行验证的话,可能会使一些非法人员通过非法手段直接进入后台,这可能会导致十分严重的安全事故。作为十分出色的安全框架Shiro,他的正常使用流程是,验证,授权,分配资源。但为什么要先认证再授权呢?
2023-05-18 16:27:16 63
原创 Shiro 过滤链的验证方式有哪些
通过Shiro过滤链验证的方式可以有多种,但是都是需要在shiro配置文件中进行注明,在配置文件中可以用anno进行注明,可以使用anno的jsp文件直接通过Shiro的过滤连进行访问。Shiro过滤链跟filer的过滤链功能上差不多,可以理解为Shiro过滤链的底层还是Filer过滤器的方式。
2023-05-18 16:12:01 101
原创 什么是设计模式,什么是常用的设计模式
设计模式其实就是一种软件设计的整体思路。就是要把一些东西抽象出来再通过一定的方式重新整理,从而达到合理优化。这么说不好理解,就举个例子把。比如你最初只是建造了一座房子,只有四面墙一个顶。可随着你的需求增多,你要不断的装修这个房子。这里添面墙,那里掏个洞的。最终有一天你会发现你的装修没有一个合理的规划,导致了好好的一个房子弄的跟个迷宫似得。软件设计也是这样,如果最初就没有一个设计模型,只是为了完成功能而些代码。最终这个程序会混乱不堪。
2023-05-18 16:01:50 114
原创 为什么开发行业首推Google浏览器进行开发
⑤、Google浏览器的开发者模式,是浏览器中首个开启f12开发者模式的浏览器,所以会有一大批忠实的开发者粉丝。②、Google浏览器相较于其他浏览器运行速度更快,更加稳定,而且简约的界面布局也十分符合开发人员的感觉。④、Google浏览器的相较于其他浏览器适配性更强,他能完美适配html5等多种前端开发者使用的功能。①、Google浏览器作为一个内核开源的浏览器非常受开发人员的喜欢,而且对开发者十分友善。⑥、Google使用的是多进程架构,保护浏览器不会因恶意网页和应用软件而崩溃。
2023-05-18 15:56:51 473
原创 在使用Shiro过滤链时,可以把/**=user放在首位吗
不能,Shrio过滤链是按照顺序进行过滤,而/**=user则将项目中的所有文件全部过滤,当你点击一个文件时会返回到user界面进行登录验证,但是/**=user是过滤所有jsp文件,当他在首位时会使前端页面一直陷入循环当中,无法找到登录验证的jsp文件。正确的操作是先将登录的jsp文件注明出来用anno进行注明,然后将其他需要的文件都一一注明,然后再将/**=user放到结尾。
2023-05-18 15:39:29 114
原创 什么是关系型数据库,什么是非关系型数据库
而解决这个问题则需要使用非关系型数据库,现在市面上用最多的非关系型数据库就是Redis包括很多大厂都在使用,Redis作为一个非关系型数据库,他跟内存的形式很像,读取速度极快,作为数据进入数据库的缓冲区十分合适,Redis能接受高并发量,每分钟可以达到上万次。以俩个数据库对比就可以大致区分开非关系型数据库与关系型数据库,关系型数据库呢主要是将数据以二维表的形式进行展示,跟excel表格的形式相同,而非关系型数据库呢则不是这样,他的展示方式会显得拥挤,但是非关系型数据库的展示方式更适合计算机的读取。
2023-05-18 15:32:37 158
原创 数据库表的表关联有哪些
③、right into 这个是右表关联,以右表为主表其他为次表,以主表为先展示 sql语句大致为 select 列名 right表1 join 表2 表1.列名1 = 表2.列名。②、left into 这个是左表关联,以左表为主表其他为次表,以主表为先展示 sql语句大致为 select 列名 left 表1 join 表2 表1.列名1 = 表2.列名。数据库有一个功能叫外键功能,可以通过外键功能对数据库进行联表查询,并将两张表的数据一同展示。
2023-05-18 14:16:01 588
原创 MySQL和Oracle的对比
MySQL和Oracle都是关系型数据库,但是MySQL是轻量级关系型数据库,并且可免费使用,而Oracle作为关系型数据库他的体量比较大,安装与维护不对外开发,免费使用但是日常维护与使用需要由企业花钱让Oracle公司下发人员进行维护。但是Oracle作为重量级数据库,他的功能更加强大,索引更加,所以在实际开发中,大多数公司都会选择使用Oracle数据库。关系型数据库以MySQL和Oracle为代表,非关系型数据库以Redis和MongoDB为代表。
2023-05-18 14:05:40 160
原创 Springboot与SSM的区别
SSM框架是SpringMVC、Spring、Mybatis三个组成,SpringMVC是Spring加MVC的一个组合,SpringMVC继承了MVC的强大功能与高强度的解耦合性,还有Spring的强大功能,比如自动装配的功能。之所以说SpringBoot是SSM的升级版,主要是由于SSM拥有的强大功能,SpringBoot中都有体现,并且有增强,SpringBoot更加主张约定大于配置,所以在SpringBoot框架中,你无法看到复杂多变的系统文件了,直接一个yml文件就可以解决。
2023-05-17 18:00:17 2476
原创 密码加盐的设计理念
Salt 可以是任意字母、数字、或是字母或数字的组合,但必须是随机产生的,每个用户的 Salt 都不一样,用户注册的时候,数据库中存入的不是明文密码,也不是简单的对明文密码进行散列,而是 MD5( 明文密码 + Salt),也就是说:当用户登陆的时候,同样用这种算法就行验证。主要的关键字段就是这么两个,一个是登陆时的用户名,对应的一个密码,而且那个时候的用户名是明文存储的,如果你登陆时用户名是 123,那么数据库里存的就是 123。严格地说,这种算法不能算是加密,因为理论上来说,它不能被解密。
2023-05-17 17:40:52 59
原创 蓝桥杯-天干地支
天干一共有十个,分别为:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊 (wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ)。地支一共有十二个,分别为:子(zǐ)、丑(chǒu)、寅(yín)、卯(mǎo)、 辰(chén)、巳(sì)、午(wǔ)、未(wèi)、申(shēn)、酉(yǒu)、戌(xū)、 亥(hài)。输出一个拼音,表示天干地支的年份,天干和地支都用小写拼音表示(不 表示声调),之间不要加入任何多余的字符。输入一行包含一个正整数,表示公元年份。
2023-05-17 17:40:32 34
原创 SpringBoot集成quartz的流程
除此之外,quartz还未trigger、job、schedule提供了响应的监听器,让你可以对他们的生命周期做出响应的处理,比如说一个任务触发前该做什么,触发后/结束后该做什么。坑4:cron类型的触发和简单触发似乎完全区别开,简单触发可以指定触发次数,而cron规则不能指定次数,要指定触发次数,似乎只能手动计数,然后在监听器中手动停掉。想让监听器在服务重启后一样有效的解决方法也很简单,配置一个全局的监听类就可以了,在监听类中可以用group来区别不同的调度类型,做出不同的处理。
2023-04-14 09:13:13 166
原创 常用的加密方式
一次密码验证过程进行1000次HASH运算,对服务器来说可能只需要1ms,但对于破解者来说计算成本增加了1000倍,而至少8字节随机盐,更是把建表难度提升了N个数量级,使得大批量的破解密码几乎不可行,该算法也是美国国家标准与技术研究院推荐使用的算法。使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单,因此很多互联网公司都采用这种方式保存用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立彩虹表进行查表破解,目前这种方式已经很不安全了。2. 对称加密算法来保存。
2023-04-14 09:12:33 924
原创 Service层和ServiceImpl层开AR方式
ClientService继承IService类 IService隶属于:com.baomidou.mybatisplus.extension.service.IService 泛型Product,对应一个表。用类和方法来实现SQL功能,由于类和方法的局限性,复杂SQL需求,还是需求原始的SQL来完成。1. 实体类,Dao层,Service层开启AR后,可以使用MP的内置方法,减少了SQL代码的重复书写。Service层开启AR(同时开启ServiceImpl的AR)T2:实体类,也是为了引向到一个表。
2023-04-14 09:09:49 101
原创 常见的几种异常
数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化, 依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)。5、数组下标越界异常:java.lang.IndexOutOfBoundsException。9、指定的类不存在: java.lang.ClassNotFoundException。10、实例化异常:java.lang.InstantiationException。2、数据类型转换异常:java.lang.ClassCastException。
2023-04-14 09:07:47 137
原创 什么是安全框架?Apache Shiro和Spring Security对比
它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。(3)身份(principal)/主体(Subject):认证用户的主要凭证之一。(2)认证(Authentication):应用程序确认用户身份的过程,常见认证:登录。
2023-04-14 09:06:26 54
原创 Authentication认证和Authorization授权的作用
Authorization(授权) 发生在 Authentication(认证) 之后。授权嘛,光看意思大家应该就明白,它主要掌管我们访问系统的权限。比如有些特定资源只能具有特定权限的人才能访问比如admin,有些对系统资源操作比如删除、添加、更新只能特定人才具有。Authentication(认证) 是验证您的身份的凭据(例如用户名/用户ID和密码),通过这个凭据,系统得以知道你就是你,也就是说系统存在你这个用户。授权 (Authorization):你有哪些权限 干什么事情。
2023-04-14 09:05:43 81
原创 ==与.equals的区别
记住,字符串的比较基本上都是使用equals方法。两条new语句创建了两个对象,然后用a,b这两个变量分别指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的,即a和b中存储的数值是不相同的,所以,表达式a==b将返回false,而这两个对象中的内容是相同的,所以,表达式a.equals(b)将返回true。==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。
2023-04-14 09:03:47 43
原创 同步加载与异步加载
同步异步 , 举个例子来说,一家餐厅吧来了5个客人,同步的意思就是说,来第一个点菜,点了个鱼,好, 厨师去捉鱼杀鱼,过了半小时鱼好了给第一位客人,开始下位一位客人,就这样一个一个来,按顺序来。相同, 异步呢,异步的意思就是来第一位客人,点什么,点鱼,给它一个牌子,让他去一边等吧,下一位客人接着点菜,点完接着点让厨师做去吧,哪个的菜先好就先端出来,同步的优点是:同步是按照顺序一个一个来,不会乱掉,更不会出现上面代码没有执行完就执行下面的代码, 缺点:是解析的速度没有异步的快;
2023-04-14 09:02:17 378
原创 被人错的String
substring()方法,substring是用于截取String字符串的内容,分为两种,一种是写一个下标,第二种是写两个下标,第一种是截取下标到结尾的字符。charAt()方法,charAt适用于读取字符串内的某一个字符值,比如用String声明的w的值为"qwer",则利用w.charAt(0)就可以获取到w字符串的q值,w.charAt(1)可以获取到w值。String不属于八大基本类型,String是一个jdk所自带的类,可以new对象和调取String特有的API。String常用的API。
2023-04-14 09:00:44 44
原创 Status的理解
3.要说明的是, ActionServlet把formbean对象传递给action的execute方法之前,可能会调用formbean的validate方法进行校验,只有校验通过后才将这个formbean对象传递给action的execute方法,否则,它将返回一个错误页面,这个错误页面由input属性指定,(看配置文件)作者为什么将这里命名为input属性,而不是error属性,我们后面结合实际的运行效果进行分析。
2023-04-14 08:58:27 213
原创 MD5加盐加密
目前最火的MD5加密,市面上已经出现了破解的方式,比如暴力破解等方式,当然在密码学上只要有破解的方法就会有新的加密方法,正所谓魔高一丈道高一尺,为了防止这一情况,出现了加盐的加密方式,何为加盐?加盐就是在明文密码前或后加入随机生成的字符,如随机生成四位字符,则这四位字符则是盐值,而密文密码则是加入盐值之后翻译成密文。然后明文加盐值生成密文。
2023-03-16 12:54:24 72
原创 cron表达式
Cron表达式是一个具有时间含义的字符串,字符串以5~6个空格隔开,分为6~7个域,格式为X X X X X X X。(4) / :表示起始时间开始触发,然后每隔固定时间触发一次,例如在Minutes域使用5/20,则意味着5分钟触发一次,而25,45等分别触发一次.(6) L :表示最后,只能出现在DayofWeek和DayofMonth域,如果在DayofWeek域使用5L,意味着在最后的一个星期四触发。例如:在DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。
2023-03-16 12:46:56 216
原创 常用的加密方式
非对称加密算法是一种密钥的保密方法,它需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密。
2023-03-16 12:45:59 99
原创 Maven远程部署
总的来说,远程部署是一个强大的工具,可以用于自动化服务器上的软件安装和配置。3)远程部署还可以用于部署服务器配置更改。要在远程计算机上运行已部署作业,首先必须在远程计算机上定义配置文件,将部署包传输到远程计算机,并在远程计算机上完成其他配置步骤。使用远程部署有很多好处,包括一次将软件部署到多个服务器的能力,自动化流程的能力,以及在出现错误时回滚更改的能力。在运行已远程部署的作业之前,必须更新远程计算机上的一些作业文件和配置文件。远程部署并行作业时,可以在与引擎层主机不同的计算机上存储和运行这些作业的脚本。
2023-03-16 12:43:08 377
原创 &&和&的不同
&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str!= null &&!&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
2023-03-16 12:42:12 40
原创 动态规划论
动态规划(英语:Dynamic programming,简称 DP),是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。一个用着一百阶的楼梯,此时有一个小孩想要跳到终点,已知这个小孩每次只能跳1、2、3阶不等,问这个小孩跳到终点有多少种方法。解这道题需要用到动态规划论,动态规划论讲究的就是利用历史数据算出下一步的可能行,所以我们可以这样解这一题。
2023-03-16 12:17:27 78
原创 SpringBoot框架
因此需求一个特殊的类—SpringBoot的启动类,这个类是SpringBoot的启动入口,可以理解这个类就像一个main方法一样,常规启动时附带启动tomcat组件。由于合并了Spring和SpringMVC的功能,因此不在需要这个框架的配置文件,仅需求准SpringBoot的配置文件application.yml。BootApplication.java启动时,会自动加载当前目录及其子目录下的所有类,因此需要把这个启动类放在项目的根目录下。SpringBoot自带tomcat组件,因此这个功能可省略。
2023-03-16 12:08:50 236
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人