- 博客(50)
- 收藏
- 关注
原创 利用Spring中的SchedulingConfigurer实现数据库配置化定时任务
直接使用@Scheduled的方式来实现定时任务有是有效,但是每增加一个定时任务,或者要修改定时任务的规则,比如修改cron表达式为固定频率或者固定次数,每次修改都要重启一下服务,为我们的开发带来了许多不方便的地方。但是这样简单粗暴的方式可以实现定时任务的功能,但是在我们之后的开发过程中会频繁的使用到定时任务,如果拓展定时任务实现方式的灵活性与拓展性就成了问题。UrTaskConfig这一类用来获取定时任务的一些配置,定时任务的规则,定时任务的状态,以及定时任务的类型(cron表达式、固定频率、固定间隔)
2024-04-23 23:52:08
1678
原创 Redis中的缓存击穿、缓存穿透、缓存雪崩问题
客户端恶意访问一个不存在的数据,从而造成穿透缓存,请求直接到达数据库,频繁的发送这一类的请求,直接查询数据库,数据库的压力变大。
2024-04-20 16:33:04
279
原创 Spring中的IOC与AOP,以及如何解决循环依赖
IOC是控制反转,简单的说来就是将对象创建的权利交给第三方管理(IOC容器),主要作用是为了解耦,如果直接再A类中直接new了一个B类对象,这就叫做硬编码耦合。在开发过程中,如果B的构造形式发生了变化后,这时就必须要修改A类了,如果有很多类都有硬编码耦合,那么这些类都需要修改了,这就是硬编码耦合带来的问题。但是使用了IOC就把对象的创建的权力交给了第三方管理,A和B不会发生直接的关联。A类是被动的从IOC容器中获取B类对象,B的构造形式发送任何变化,都不需要取修改A类,通过这样的思想达到解耦的目的。
2024-04-20 12:22:25
272
原创 MySQL在什么样的情况下会用不上索引,或者索引失效
当我们写一个sql语句时,后面会跟上查询条件,最左前缀原则就是在我们使用复合索引的时候查询条件会从做左到右进行匹配。只有充分的利用到联合索引的时候才会用到联合索引。select * from student where name like '雷军'% and age>18;select * from student where name like '雷军'% or age>18;select * from student where name like %'雷军'%;1.不遵循最左前缀原则。
2024-04-18 23:23:40
322
原创 Redis几种常见的应用方式
redis最常见的应用就是,登录认证把。再首次登录返回给前端token,把用户名和登录状态缓存到redis一段时间,每次其他请求进来过滤器那这token解析出来的用户名或其他关键的key值,再redis里面查询缓存,有则直接放行,没有就重定向到登录页面。在开发中我们可以将一部分的数据存到redis中缓存起来,当前端发生请求时,到达相应的微服务中,可以先去redis中查询是否有相关的数据,没有再去数据库查询,如果数据库有的话则重建缓存,直接把数据返回给相应的业务微服务,之后再保持redis的数据一致性。
2024-04-18 23:08:25
322
原创 使用kafka的几种场景
在一个分布式的微服务架构中,实现一个聊天的功能,小明和小红互相给对方发消息,如果有两个netty服务器,小明连的是netty服务器1,小红连的是netty服务器2,现在小明给小红发消息,但是服务器1上面没有小红的链接。这时就可以通过把发送的消息通过kafka同步给其他服务器,如果其他服务器有小红的连接就把消息传递下去,没有就不做处理。因为kafka的特点就是高吞吐量,当高并发时,可以削峰来消除下游服务的流量峰值,用时间来换性能。使得服务之间的业务变得解耦和。
2024-04-18 20:59:45
430
1
原创 equals与==,equals与hashcode方法的关系
这是因为当前的类对象有可能作为key方法HashMap的话,则两个equals比较为true的对象,应该要放入同一个哈希槽中,但是若因为没用重写hashcode方法,则这两个对象有可能算出不同的哈希槽的下标,从而导致两个“相同”的key,放入了两个不同的哈希槽中,违背了HashMap的设计原则。2)引用类型:==比较的是内存地址,equals的底层默认是==,比较的也是地址,但是具体比较什么,取决于当前对象如何重写equals犯法。2.为什么重写了equals方法必须重写hashcode方法。
2024-04-18 20:39:22
200
原创 final、匿名内部类、成员内部类、静态内部类
描述:接口是特殊的抽象类;特殊性:可以看成抽象的事物;没有继承关系,但是有相应的应用场景---多态接口中的方法也是抽象的,需要通过实现类来完成定义接口:interface 接口名 定义实现类: 类 implements 接口。
2024-02-27 21:30:04
509
1
原创 final、抽象类、内部类
final从字面意思来看时最终的,不可改变的含义,它可以修饰在类、方法以及变量中值得注意的是:final修饰类则该类不能被继承,修饰方法则该方法不能被重写,修饰变量则该变量变为常量代码示例/*final*/ class Animal{//不能被继承public /*final*/ void eat() {//不能被重写class A{//final修饰的成员变量,没有初始化,需要赋值//a.直接赋值 b.动态代码块 c.构造方法/*= "b";*/
2023-07-09 19:10:32
389
原创 静态属性、静态方法、类加载
类加载是指找到class文件,可以获取到文件中的所有资源,包名、类名、属性、方法以及构造器等实例化对象、实例化子类对象、静态属性以及静态方法以及使用Class.forName(全限定名)--反射代码示例class A{String name = "占山";//这里写上面的name,因为已经赋值好了public A() {//构造方法这里可以不用加{}System.out.println("动态构造方法");new A();new A();class A2{
2023-07-09 17:46:39
301
原创 MyBtis综合案例2——学生管理系统的实现(JSP+Servlet+PageHelper完成MySql的增删改查以及分页查询+以性别与姓名的模糊查询、模态框的使用)
BaseServlet代码,能够帮助我们完成各种反射对象的获取,前端访问谁就能够获取谁,不必每个服务器都要完成一遍映射,极大程度的简化了我们后续带代码工程,以及在这里做好之后反射异常的报错提示,在这之后写项目的过程中,如果出现路径问题的,报的错能够极大程度的帮助我们修改bug。在这里我们所作的功能是获取前端传过来的数据,完成业务层的调用,以及完成分页功能的展示,并将从数据库中查询到的数据返回给前端。修改时我们要在当前页面下以模态框的形式完成我们的修改功能,点击修改按钮就能够对当前用户的信息进行修改。
2023-07-09 15:18:06
452
原创 MyBatis中注解SQL的使用
是指直接在接口中添加MyBatis注解完成CRUD功能,在实施此步骤前一定要先将接口全限定名注册到MyBtis的xml文件中的<mappers>
2023-07-09 00:01:54
1138
原创 如何在MyBatis中使用PageHelper插件
PageHelper是适用于MyBatis框架的一个分页插件,使用方式极为便捷,支持任何复杂的单表、多表分页查询操作。MyBatis 分页插件 PageHelperGitHub - pagehelper/Mybatis-PageHelper: Mybatis通用分页插件。
2023-07-08 23:59:35
257
原创 MyBatis中的缓存介绍与示例
在用户访问相同数据时,需要对数据库多次访问,导致产生大量IO、读写硬盘的操作,效率低下,有了缓存首次访问时,查询到数据库数据库,将数据库存储到缓存中,再次访问时,直接访问缓存减少IO的与赢哦读写,提高效率。
2023-07-08 23:56:34
1071
原创 MyBatis中的动态SQL(sql标签、where标签、set标签、批量增加与批量删除)
将基础SQL语句中重复性高的增加它的复用性,使得sql语句的灵活性更强。
2023-07-08 23:51:30
1013
原创 MyBatis中的关联关系以及多表连接
双方建立关系属性后,对应的mapper文件中要使用<ResultMap>完成多表之间的映射持有对象关系属性(一对一):< association property="" javaType="" >
2023-07-08 23:47:52
118
原创 如何在MyBatis中完成ORM的映射
当表字段于实体属性不一致时,则映射失败,值无法注入,因为orm就来解决这个问题两个方法:设置别名与结果映射。
2023-07-08 23:42:47
801
原创 MyBatis的CRUD操作(添加、删除、修改、删除)
查询这里会展示四种参数绑定的形式,帮助理解,但在这四种参数中最为推荐的是注解参数绑定,能够帮助我们极大程度的简化代码,因为mybatis就是未来能够完成增删改查操作,使得我们能够只关注参数绑定。
2023-07-08 23:39:38
118
原创 如何利用MyBatis完成web项目的环境搭建(导入核心依赖包、日志、编译环境,配置文件以及Druid连接池)
该项目主要是为了扩展 JDBC 的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计 SQL 信息、SQL 性能收集、SQL 注入检查、SQL 翻译等,程序员可以通过定制来实现自己需要的功能。在这里我们使用上面的datasource时传入的时MyBatis自带的连接池,在平常测试时使用绰绰有余,但如果考虑提升性能的话就会考虑使用Druid连接池。一般mapper.xml也可以放在导中,这样要先在pom.xml中配置下列文件。i:myBatis的配置,得出框架的关键信息,以及开启了事务。
2023-07-08 23:27:35
519
原创 MyBatis综合练习案例1——Servlet+JSP+MyBatis+分页插件,完成增删改查功能
如何所示要要使用Servlet+JSMYbatis与分页插件做出一个简单的页面效果,这个案例的重点在于如何将这几个部分结合起来,以及如何便捷的使用分页插件,抛却之前对于分页所做的复杂的工作,使得我们的能够专注于业务功能的实现。
2023-07-07 23:32:38
537
原创 多态的含义
抽象是指一个类有某种方法,但不知道如何实现,这种方法叫做抽象方法,具体的实现交给子类来完成(重写),设计抽象类的目的是为了更为自然的使用多提;一般抽象方法作为模板来使用。注意开闭原则:对外新增的代码持开放状态——扩展性,对内修改的代码持关闭状态——维护性,灵活性。父类转子类:强转(有隐患)
2023-06-25 00:45:36
170
原创 Java基础知识——09
protected:保护权限,在本类中可以访问,保护权限,在同包不同类中可以访问,保护权限,在不同包的子类中可以访问,保护权限,在不同包不同类中不能访问。default:默认权限,在本类中可以访问,默认权限,在同包不同类中可以访问,默认权限,在不同包的子类中不能访问,默认权限,在不同包不同类中不能访问。public:公开权限,在本类中可以访问,公开权限,在同包不同类中可以访问,公开权限,在不同包的子类中可以访问,公开权限,在不同包不同类中可以访问。程序中的继承是指:类与类的关系,子类继承父类的属性和方法。
2023-06-24 23:57:42
226
原创 Java基础知识——08
共性的抽取:特征与行为是属于对象的,但其他的对象也有;所以在我们设计程序时,可以把共性的特征与行为抽取到类中,表示类的特征与行为,比如说动物都可以吃,学生类要学习,老师类要上课。对象:在Java程序中,一切皆为对象,从main出发依次执行,先有对象才能依次执行。步骤:实例化对象、调用属性、打印属性、对象调方法以及实例化多个对象。在一个类中,方法名相同,参数个数或类型不同,方便管理方法的调用。类:一类事务的抽象描述,比如水果类、动物类、学生类以及老师类。出现位置:局部变量出现在方法体中,成员变量出现在类中。
2023-06-24 21:56:06
196
原创 使用Druid完成MySql数据的增删改查——DAO层的封装
这里提供了两种,一种是手写DaoUtils完成Dao层的封装,一种是使用阿里巴巴的工具完成Dao层的封装。这里使用的是阿里巴巴的工具类。Duid工具类的代码。
2023-06-23 13:36:10
333
原创 DAO层数据访问层的封装
2.查询的代码块封装,因为不知实体属性与表字段的对应关系所以采用映射的方式解决这个问题。1.增、删、改的代码类似因此可以使用同一个代码块,提高代码的复用。
2023-06-23 13:16:46
179
1
原创 MySQL编写一个学生管理系统——DAO层练习
表-->实体对象,字段-->实体属性,往往字段名要与属性名一致,ORM一般用在查询中,将表数据映射。ORM就是对象关系映射,对象-->java代码,关系-->表;实体对象与表之间的映射关系。2.MySQL数据交互DAO层。
2023-06-15 08:31:39
194
原创 MySQL基础题——设置登录账户
2.在控制台输入用户名和密码,显示登录成功。2.在控制台输入用户名和密码,显示登录成功。1.插入两条测试语句。1.插入两条测试语句。
2023-06-14 21:52:50
71
原创 HTML的基础知识
what?(html是什么):超文本语言,通过标签进行开发,图文并茂,并且通过超链接的方式进行页面跳转how?(作用):在网页中展示数据。
2023-06-04 17:02:17
238
原创 BOM、定时器与Cookie
游览器模型,获取了游览器对象,就可操作所有的JS代码,在JS中,一切属于window(window就是游览器对象)例如:JS的代码包括:全局变量,函数,属性,document都是属于window的资源。
2023-06-04 16:09:49
182
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人