自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 MyBatis缓存中的一级缓存和二级缓存的作用和用法、EHCache缓存怎么配置

Ehcache是一个流行的开源Java缓存框架,它提供了快速、高效的内存缓存解决方案,支持多种缓存策略,包括基于内存的缓存、磁盘缓存和分布式缓存。虽然删除的和我们查询的不是一条数据,仿佛删除一条数据对我们没有影响,但是如果我们删除的是要查询的数据,虽然数据库里面没有这条数据,但是缓存里面有这条数据,则还是能查到这条数据,一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问,一级缓存默认是开启的。

2024-04-25 16:43:31 554

原创 Spring依赖注入之setter注入与构造器注入以及applicationContext.xml配置文件特殊值处理

构造器注入器要求实体类对象必须有满参构造器和空参构造器,并且在注入的时候,满参构造器里的全部都要注入,否则会报参数匹配异常。

2024-01-24 20:39:19 764 1

原创 Spring什么是控制反转IOC和依赖注入DI的关系?什么是IOC容器?IOC容器管理组件的例子

编写一个实体学生类,和Spring的配置为文件,并且将实体类交给配置文件进行管理,但是可以看到,我们运行的结果报错了,异常显示我们找不到这个方法,这个方法指的是空参构造器,由于Spring 底层默认通过反射技术调用组件类的无参构造器来创建组件对象,这一点需要注意。是Spring的一个思想,我们具象化到它是一个容器,包含并管理组件对象的生命周期,容器主动的将资源注入给需要的组件,开发人员不需要知道容器是如何创建资源对象的,只需要提供接收资源的方式即可。BeanFactory 的子接口,提供了更多高级特性。

2024-01-24 18:30:19 1012 1

原创 怎么配置分页插件?为什么PageHelper分页不成功?

【代码】怎么配置分页插件?为什么PageHelper分页不成功?

2024-01-23 19:08:10 490

原创 MyBatis中一级缓存是什么?SqlSession一级缓存失效的原因?如何理解一级缓存?

虽然删除的和我们查询的不是一条数据,仿佛删除一条数据对我们没有影响,但是如果我们删除的是要查询的数据,虽然数据库里面没有这条数据,但是缓存里面有这条数据,则还是能查到这条数据,一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就 会从缓存中直接获取,不会从数据库重新访问。4) 同一个SqlSession两次查询期间手动清空了缓存。虽然查询的都是一个对象,但是查询条件不一样,则缓存失效。1) 不同的SqlSession对应不同的一级缓存。

2024-01-23 08:33:54 507

原创 MyBatis二级缓存和EHCache什么关系,为什么要配置EHCache?什么是二级缓存?什么是一级缓存

二级缓存是SqlSessionFactory级别,通过同一个SqlSessionFactory创建的SqlSession查询的结果会被 缓存;此后若再次执行相同的查询语句,结果就会从缓存中获取。

2024-01-22 23:40:51 1007

原创 MyBatis的SQL动态语句关于foreach,trim到底怎么用?

when相当于if...else if..elseotherwise相当于else,当所有的when条件都不满足的时候,就会执行otherwise里面的语句综上所述,上面都是选择语句,相当于java的if if...else else语句,当所有语句只执行一个条件的时候,无须在语句前面加上and,例如choose when otherwise,但是在每一个条件都会进行比较并动态组装的时候,就要在每一句前面加上and,例如

2024-01-22 21:48:40 567

原创 MyBatis的resultType和resultMap的作用分别是什么?

如果数据库字段和我们的属性字段对应,我们就直接写resultType属性对应我们的结果类型,如果不对应,我们就要使用resultMap属性把我们的字段和属性对应起来,autoMapping默认是true,也就是说相同的字段属性就无须写了。resultMap是自定义映射,无须bean对象和数据库字段对应起来,需要使用resultMap进行对应映射。在MyBatis中,xxxMapper.xml文件里的select标签,我们总是要给他设置属性的,就像这样。再看看我们数据库的表的字段和我们的bean对象的属性。

2024-01-17 20:16:11 346 1

原创 java后端生成谷歌图篇验证码

图片上的验证码在第三方jar包中进行了处理,我们可以直接调用第三方jar包里的方法去获取这个图上的验证码和我们输入的验证码进行比较。在html网页上把这个验证码放进去,通过img链接和jquery,点击功能是为了看不清图片时,我们进行图片的更换。由于要实现这个功能,要使用到servlet,但是第三方jar包无法使用注解配置,所以我们使用配置文件进行配置。这样我们就实现了验证码的功能。

2023-12-27 11:16:11 447 1

原创 重定向和请求转发的概念和区别

在请求转发过程中,设置域数据(Attribute)的作用是将数据存储在请求对象中,以便在转发的目标Servlet或JSP页面中获取和使用这些数据。请求转发不能站外跳转,只能当前的项目下的资源内进行跳转【请求转发】,可以转发域数据和属性值,也就是说所有数据都可以在转发后的地址获取到,转发时地址栏网站不发生改变。3. 隐藏URL和保持请求状态:请求转发是在服务器内部进行的,对客户端是透明的,因此可以隐藏目标资源的URL,同时保持请求状态,比如保持用户的登录状态。采用的是相对定位的方式,在当前工程路径下寻找。

2023-12-26 16:56:41 36

原创 JavaScript闭包函数

闭包函数是指在一个函数内部定义的函数,并且该内部函数可以访问其外部函数的变量。换句话说,闭包函数可以“记住”其创建时所处的上下文环境,即使在其创建的上下文环境已经不再存在时仍然可以访问和操作外部函数的变量。例如,在这个例子中,我们使用jquery创建分页,当我们给每一条数据加上点击功能时,当页面加载,我们还没有使用这个点击功能的时候,i的值会处于变化的状态,当我们再次点击的时候,会出现以下报错。简单来说,即使闭包函数里面的变量名是一样的,但是他们代表的是不用的含义,不会出现变量污染。

2023-12-21 15:02:11 24

原创 Echarts数据可视化简单版

前后端分离,前端使用到的编程工具和技术:vs+echarts+jquery+ajax+js,后端使用的工具和技术:idea+maven+ssm+jdbc。基于Hive+sqoop+hdfs+mysql+echarts的网络日志流量数据可视化简易项目。参考书籍:《Hadoop大数据技术原理与应用》

2023-12-02 20:11:22 80 2

原创 模式设计七大原则

1.单一职责原则,如果一个项目的逻辑不复杂,可以不遵循单一原则,类的单一职责原则(每一个类只负责一项职责,比如一个dao类只负责一张表的属性,例如一个类只负责一种动物的行为),只有当程序的方法较少时,可以遵循方法的单一职责原则,在一个方法中,只负责一个行为,一个类中可以有多个不同种类的相同行为的不同表现形式,例如一个动物类里面是水生动物,陆生动物,飞行动物的吃饭行为。开闭原则也遵循依赖倒置原则。从依赖具体实现类变成编程思想依赖接口和抽象类,而不是依赖实现类,这样的编程思想使项目的构架更加稳定。

2023-11-28 16:23:21 25

原创 关于enctype=“multipart/form-data“格式提交表单的问题

当我们在做表单提交的时候,我们可能提交的数据形式多种多样,例如:文本,图片,音频,视频等方式提交,这样一来,一个http里包含了多个多种不同类型的数据,所以我们要使用enctype="multipart/form-data"来将请求体分隔成多个部分,每个部分都有自己的头部信息。由于我们采用的是POST提交方式,并且设置了multipart/form-data,所以我们使用getParameter获取的参数是来自url上的,如果url上没有这个参数,返回的就是null,并且url是get提交方式。

2023-11-27 17:42:58 202

原创 虚拟目录的配置

当我们做文件上传的时候,我们如果把图片直接放到out目录下,当我们偶尔需要删除out时,图片就不能访问到了,所以我们选择设置一个虚拟目录来进行存放图片。通过这个地址,我们可以看到这个内容,这个内容就是我配置以后生成的目录映射文件,通过这个目录,我们可以在tomcat上找到这个地址并查看其中的图片。选择要存放上传图片的路径,然后点击应用,OK,最后关闭,则这个工程上传的图片路径就到了我们本地目录A盘下的 bookimg目录。通过上面的配置可以看到,运行程序控制台会出现如下内容,去我们的电脑里面找这个地址。

2023-11-23 12:31:45 217

原创 使用工具类 BeanUtils

BeanUtils 类提供了一些方便的方法,可以简化 Java 对象之间属性值的复制、拷贝和操作工作。它在 Java 开发中特别适用于处理 JavaBean 对象和实体类对象之间的属性操作。我们本次使用到的是使用一个map集合存放键值对,键和javabean的属性匹配,然后自动将map集合里面的值赋值到javabean的属性上。

2023-11-19 17:58:10 23

原创 访问域对象(前后端不分离的情况)

session会话域,默认可以保存30分钟数据有效果,但是前提是不要关闭浏览器,如果关闭浏览器再一次访问,就访问不到session中的数据了,原因是跟cookie有关。会话域的取值需要在本页面上取,才能在其他页面上取到,这是因为会话域的数据是存储在服务器端的,通过会话ID来进行关联。2. 请求域(Request):请求域是在一次HTTP请求中有效的数据存储方式,它只在当前请求的处理过程中有效,请求结束后即被销毁。请求域的数据无法在不同请求之间共享,仅在当前请求的处理过程中可用。

2023-11-18 14:05:31 35 1

原创 日期插件和取消数据库字段检查

由于刚开始学习CRUD,所以我们没有框架的支持,当获取数据库数据的时候,数据库字段和实体类属性不匹配就会出现对象没有数据的情况,因此我们可以先取消字段匹配检查,如图在所有查询方法中加上如下代码。当我们在页面上输入日期的时候,可能用户输入的日期格式五花马门,这个时候就需要我们加入一个插件对用户输入格式进行限制,如图。这样一来数据库字段和实体类属性不匹配也没有关系。就会得到如图的一个时间插件。

2023-11-16 17:21:02 33 1

原创 序列化Serializable 高级流

序列化是将对象转换成可存储或者变成不同传输格式的过程。可以被转成字节流以二进制形式存储或者是其他形式的数据流。

2023-11-14 20:53:43 21

原创 使用thymeleaf做CRUD的体会

采用三层架构,满足我们平常的开发模式,mybatis(dao层+ORM) ,spring(service层),spring mvc(控制层 servlet)。

2023-11-13 16:06:12 30

原创 Unicode和ASCII

ASCII码只有128个字符,从0-127号对应不同的字母,数字,转义字符,特殊符号,而Unicode储存的才是字符,例如汉字,罗马文,阿拉伯语等。charAt()得到的都是字符(char),ASCII字符之间的加减就是ASCII码之间的加减,得到的类型是int类型。实现字符之间的加,可以使用链式编码(append)直接追加字符串在后面,无须在常量池开辟新的地址。

2023-11-10 20:00:02 25 1

原创 Thymeleaf的用法和作用

它是一个服务器模板渲染引擎,搭配着servlet一起使用。

2023-11-09 17:09:05 84 1

原创 CRUD增删改查,MySql Druid简化代码封装增删改查

一个javaBean,一个封装好增删改查的逻辑操作(工具类可以供多个JavaBean使用),一个Dao接口,是对应实体类的增删改查,一个实现类,继承工具类,同时实现Dao接口。一套JDBC连接数据库的增删改查就封装好了使用三个第三方Jar包,其中QueryRunner类简化了代码的书写,使用这个类可以直接调用封装好的增删改查逻辑,传入数据源在查询的时候无须手动管理数据池里的连接,如需要事务处理,可以直接传入Connection数据库连接手动管理。

2023-11-05 18:10:37 86

原创 登录注册后端工作

当我们在写servlet时,如果获取表单输入name不正确,可能会引发其他层的空指针异常为什么一定要有接口,然后实现接口,因为有了接口便于维护,便于功能升级,当我们的功能不满足原来的要求的时候,我们重新写一个实现类,然后直接在运用的地方做改变,而无须改变原来的实现类。接口是标准,其他实现类必须实现这个标准,所以我们的开发是基于接口开发的。为什么实现类的对象返回类型要是接口类型,因为这还是基于开发的规范(接口是标准),我们在做一个项目的时候只能调用接口中的方法。我们实现类中自定义的方法,不能被调用。

2023-11-05 17:37:36 34

原创 将数据库查询结果打印到网页上,数据库连接基于Druid

使用Druid对数据库进行封装改查,和servlet进行整合,让我们对servlet的作用有更深的了解,同时该方法是一种扩展性较好的方法,可以多个条件同时查询,代码不冗余。

2023-11-05 15:33:24 94

原创 Thymeleaf加不加xmlns,引入地址的问题

这一句加不加的作用在于,加上时我们在写关于thymeleaf的标签和语法时,会有提示,方便一些,不加则没有提示,但是并不影响我们功能的实现。

2023-11-05 13:46:19 37

原创 Servlet知识进阶

在上一次的基础上,我们对HttpServletRequest和HttpServletResponse对象进行了更精确的讲解,前者是接受来自客户端的请求,然后进行逻辑处理,后者是对结果进行响应。请求转发是Servlet中的一个重要功能,可以通过HttpServletRequest对象进行请求转发或者HttpServletResponse进行重定向转发,两者有非常大的区别。

2023-11-02 20:21:28 22 1

原创 Servlet知识理解

Servlet方法的认识,Servlet的作用,Servlet容易错误的地方,Servlet容易混淆的地方,Servlet异常ServletConfig和ServletContext这两个对象都可以调用getInitParameter这个方法,并且获取到参数的值,在此再次总结一下,虽然都可以获取到参数值,但是两者有差别。

2023-11-02 19:56:27 33 1

原创 jQuery

jQuery是基于js而生,对象可以在jQuery和js之间进行转变,jQuery的优点在于它对js的部分代码进行了封装,最典型的特征就是我们无须在进行for循环为一个元素赋值或者设置样式,我们可以一键同时修改和赋值,它较为灵活的可以任意选择操作某个元素。

2023-10-28 16:13:29 28 1

原创 使用克隆方式增删表格

table标签定义了一个表格的开始和结束,它告诉浏览器这是一个表格元素,需要按照表格的规则进行布局和渲染。on()方法是在jQuery1.7版本中引入的,适用于现有的元素和动态添加的元素,可以更精准地控制事件处理程序的绑定范围。使用这两种方法绑定的事件处理程序会在整个文档中生效,包括后来添加的元素,而不是仅仅在绑定时已经存在的元素上生效。live()方法是在jQuery1.3版本中引入的,适用于动态添加的元素,可以在整个文档中生效。使用克隆做增删,对新增的内容做绑定事件要使用on()或者live()方法。

2023-10-27 17:39:17 22 1

原创 tomcat部署及与IDEA整合

主要对tomcat进行介绍,以及如何将他们整合在一起,运行第一个程序

2023-10-26 12:59:33 34

原创 Spring Boot 配置文件application.yml里变量名的定义

配置文件application.yml里变量名的定义

2023-04-24 00:11:17 376

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除