自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(269)
  • 问答 (2)
  • 收藏
  • 关注

原创 SSM 整合(Spring + MyBatis;Spring + Spring MVC)

在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。

2024-07-18 14:57:58 1240

原创 Java 网络编程(TCP编程 和 UDP编程)

我们开发的网络应用程序位于应用层,TCP和UDP属于传输层协议,在应用层如何使用传输层的服务呢?在应用层和传输层之间,则是使用套接Socket来进行分离。套接字就像是传输层为应用层开的一个小口,应用程序通过这个小口向远程发送数据,或者接收远程发来的数据。而这个小口以内,也就是数据进入这个口之后,或者数据从这个口出来之前,是不知道也不需要知道的,也不会关心它如何传输,这属于网络其它层次工作。Socket实际是传输层供给应用层的编程接口。Socket就是应用层与传输层之间的桥梁。

2024-07-18 14:42:15 1163

原创 Spring MVC 全注解开发

定义配置类,用 @Configuration 注解进行标注,表示:标记该类是配置类WebAppInitializer 这个类就是用来代替 web.xml文件的:SpringMvcConfig 的类,作为 Spring MVC 的配置类。,同时重写其中的方法可以,配置(默认 Servlet 处理,以及异常处理器,拦截器)在springmvc.xml 文件中都可以配置什么?- 1.组件扫描- 2.视图解析器- 3.静态资源处理 default-servlet-handler。

2024-07-15 16:34:46 1103

原创 Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置”

拦截器(Interceptor) 类似于过滤器(Filter)Spring MVC 的拦截器作用是在请求到达控制器之前或之后进行拦截,可以对请求和响应进行一些特定的处理。拦截器可以用于很多场景下:拦截器和过滤器的区别在于它们的作用层面不同:Filter、Servlet、Interceptor、Controller的执行顺序:实现 接口,共有三个方法可以进行选择性的实现:第一步:编写拦截器,该拦截器要实现 接口 。第一种方式:通过 xml 进行配置需要注意的是:这个基本配置,默认情况下是拦截所有请求的。在

2024-07-15 16:18:59 788

原创 Spring MVC 中的异常处理器

Spring MVC 在处理器方法执行过程中出现了异常,可以采用异常处理器进行应对。一句话概括异常处理器作用:处理器方法执行过程中出现了异常,跳转都对应的视图,在视图上展示友好信息。Spring MVC 为异常处理提供了一个接口:HandlerExceptionResolver核心方法是:resolveException。该方法用来编写具体的异常处理方案。返回值ModelAndView,表示异常处理完之后跳转到哪个视图。

2024-07-14 16:55:39 1112

原创 Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向和转发,以及访问静态资源

ViewResolver 接口,视图解析接口(ThymeleafViewResolver 实现了 ViewResolver 接口,InternalResourceViewResolver 也是实现了ViewResolver接口…),这个接口作用是将逻辑视图名称 转换为 物理视图名称,并且最终返回一个 view 接口对象,核心方法是:View resolveViewName(String viewName,Locale locale) throws Exception;

2024-07-14 16:48:18 1137

原创 Spring MVC 中的文件上传 和 文件下载

文件上传:form表单采用post请求,enctype是multipart/form-data,并且上传组件是:type=“file”上传文件时,文件起名采用UUID。以防文件覆盖。“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。

2024-07-13 19:20:30 796

原创 Spring MVC 中 HttpMessageConverter 转换器

HTTP 消息其实就是 HTTP 协议。HTTP 协议包括 和 。以下是一份HTTP POST请求协议:以下是一份HTTP GET请求协议:以下是一份HTTP响应协议:3. 转换器 是 中非常重要的一个接口。翻译为:HTTP消息转换器。该接口下提供了很多实现类,不同的实现类有不同的转换方式。通过以上内容的学习,大家应该能够了解到 接口是用来做什么的了:如上图所示:HttpMessageConverter 接口的可以将请求协议转换成 Java对象;也可以把 Java对象转换为响应协议。HttpM

2024-07-13 19:13:11 783

原创 Spring MVC 中 使用 RESTFul 实现用户管理系统

文件包括:user.css、user_index.html、user_list.html、user_add.html、user_edit.html。代码如下:2.2 user_index.html2.3 user_list.html2.4 user_add.html2.5 user_edit.html3. SpringMVC环境搭建3.1 创建module:usermgt3.2 添加web支持注意两个过滤器Filter的配置顺序:先配置 CharacterEncodingFil

2024-07-04 22:13:13 407

原创 Spring MVC 中使用 RESTFul 编程风格

RESTFul风格与传统方式对比区别RESTFul 风格的 “查询” 所有(RESTFul 规范 需要发送 GET请求)RESTFul 风格的 根据 “id 查询”( RESTFul 规范 需要发送 GET请求)RESTFul 风格的 “增加数据” (RESTFul 规范 需要发送 POST 请求)RESTFul 风格的 “修改数据” (RESTFul 规范 需要发送 PUT 请求)如何发送PUT请求?第一步:首先你必须是一个POST请求。,使用隐藏域进行配置。

2024-07-04 22:01:55 407

原创 Spring MVC 获取请求数据的四种方式,以及获取请求头数据,获取Cookie 的数据,设置Spring MVC 的字符集编码过滤器

2.2 添加 web 支持先在 main 目录下,添加名为 的目录(文件夹),只能是这个 webapp 目录名,不可以是其他的。2.4 创建 UserController 类2.5 编写 springmvc.xml在 springmvc.xml 当中配置两个信息:2.6 编写 register.html 文件视图2.7 部署测试原生的 Servlet API 指的是:HttpServletRequest在 Spring MVC 当中,一个 Controller 类中的方法参数上如果有

2024-06-30 17:17:28 721

原创 Spring MVC 获取三个域(request请求域,session 会话域,application 应用域)对象的方式

三个域:request 请求域,session 会话域,application 应用域三者域的使用,从最小范围的域,来判断使用,可以用范围更小的域,就用范围更小的域来解决问题,传数据资源。如果域的范围不够,就一点的扩大。使用原生Servlet API方式。使用Model接口。使用Map接口。使用ModelMap类。使用ModelAndView类。使用原生Servlet API使用SessionAttributes注解。

2024-06-30 16:57:00 653 1

原创 Spring MVC 的 @RequestMapping 注解的属性值详细讲解

我们先来看,在同一个web应用中,是否可以有两个完全一样的RequestMapping。测试一下:假设两个RequestMapping,其中一个是展示用户详细信息,另一个是展示商品详细信息。提供两个Controller,一个是UserController,另一个是ProductController。import org@Controller // 将该类交给 Spring IOC 容器管理 public class UserController {

2024-06-22 21:01:13 785

原创 初识 SpringMVC,运行配置第一个Spring MVC 程序

MVC 是一种软件架构模式(是一种软件架构设计思想,不仅仅是Java开发中用到,其它语言也需要用到),它将应用分为三块。M: Model (模型)V:View (视图)C:Controller (控制器)应用为什么要被分为三块,优点是什么?低耦合,扩展能力增强代码复用性增强代码可维护性增强高内聚,让程序员更加专注业务的开发。Model :负责业务处理及数据的收集View:负责数据的展示。

2024-06-22 20:40:08 903

原创 手写MyBatis 重要基本原理框架

提供一个无参数构造方法,再提供一个build方法,该build方法要返回SqlSessionFactory对象/*** 创建构建器对象} /*** 获取SqlSessionFactory对象* 该方法主要功能是:读取godbatis核心配置文件,并构建SqlSessionFactory对象* @param inputStream 指向核心配置文件的输入流* @return SqlSessionFactory对象。

2024-06-16 15:12:36 836

原创 MyBatis 的缓存机制

MyBatis 缓存包括:一级缓存:将查询到的数据存储到 SqlSession 中二级缓存:将查询到的数据存储到 SqlSessionFactory 中或者是集成其它第三方的缓存:比如 EhCache(Java语言开发的),Memcache(C语言开发的)等。注意:缓存只针对于 DQL(查询)语句,也就是说缓存机制只对应 Select 语句。一级缓存默认是开启的一级缓存失效情况包括两种:第一种:第一次查询和第二次查询之间,手动清空了一级缓存。

2024-06-16 14:57:41 976

原创 MyBatis 的注解式开发

原则:简单SQL 可以注解。复杂SQL 建议使用 xml(SQL映射文件)。“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。

2024-06-15 15:00:44 703

原创 MyBatis的逆向工程详细步骤操作

所谓的逆向工程:会/可以根据数据库表逆向生成Java的 POJO类,SqlMapper.xml (对应SQL映射文件),以及Mapper 接口类等。关于 MyBatis 的逆向工程有两个版本:对应在 targetRuntime 的两个值:1. MyBatis3Simple:生成的是基础版,只有基本的增删改查。2. MyBatis3:生成的是增强版,除了基本的增删改查之外还有复杂的增删改查。注意:MyBatis3 增强版,多出来的这个CarExample。

2024-06-15 14:50:33 1275

原创 MyBatis使用 PageHelper 分页查询插件的详细配置

假设已知页码pageNum,还有每页显示的记录条数pageSize,第一个数字可以动态的获取吗?“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。

2024-06-14 16:28:22 709

原创 MyBatis 关于查询语句上配置的详细内容

数据表结构的设计,数据表名为:t_cart_car 表中的数据信息:在 文件当中配置相关的依赖的 jar 包如下:配置 logback 的配置文件,用于打印显示,我们的日志信息,方便我们查看我们的运行过程,效果。配置 MyBatis 的核心配置文件,对照 t_car 创建的ORM 映射的 Car 类注意:在MyBatis 当中对应的ORM ,一般在框架里对应的 Bean实体类,一定要实现该 set 和 get 方法以及无参数构造方法,无法框架无法使用反射机制,进行操作 。建议用包装类,这样可以防止

2024-06-14 16:16:49 503

原创 MyBatis 动态 SQL 的详细内容讲解

if 标签: if 标签中的 test 属性是必须的,if 标签中 test 属性的值是false 或者 true,如果test是true ,则if标签中的sql语句就会拼接,反之则部分拼接、Where标签:所有条件都为空时,where 标签不会生成where子句。同时满足条件 会自动生成 where 关键字,不需要我们手动添加。自动去除某些条件前面多余的 and 或 or。

2024-06-13 17:11:29 1000

原创 MyBatis 高级映射与延迟加载(分步查询)的详细内容

多对一的高级映射多种方式,常见的包括三种:第一种方式:一条SQL语句,级联属性映射。第二种方式:一条SQL语句,association。第三种方式:两条SQL语句,分步查询。(这种方式常用:优点一是可复用。优点二是支持懒加载。association翻译为:关联。学生对象关联一个对象(这里关联班级对象)。分布查询就是利用延时加载的机制。延迟加载的核心原理是:用的时候再执行查询语句,不用的时候不查询,作用:提高性能,尽可能的不查,或者尽可能的少查,来提高效率。

2024-06-13 16:57:16 1037

原创 MyBatis 参数上的处理的细节内容

告诉mybatis框架,我这个方法的参数类型是什么类型的,mybatis 框架自身带有类型自动推断的机制,所以大部分情况下 parameterType 属性都是可以省略不写的。其实对于Mybatis 框架来说,简单类型对于mybatis来说都是可以自动类型识别的:在MyBatis 框架当中如下,为的类型被定义为简单类型简单类型包括:String也就是说对于mybatis来说,它是可以自动推断出ps.setXxxx()方法的。ps.setString()还是ps.setInt()。它可以自动推断。

2024-06-12 22:46:25 692

原创 在 Wed 中应用 MyBatis(同时使用MVC架构模式,以及ThreadLocal 事务控制)

对于 pojo 当中的类,一定要有 set 和 get 方法,以及无参数构造方法,不然,大部分的框架是无法通过反射机制,进行操作的,从而出现错误的。/*** 账户类,封装账户数据*/@Override'}';return id;/*** 余额不足异常*//*** 转账异常*/为了保证 service 和 dao 中使用的SqlSession对象是同一个,可以将SqlSession对象存放到ThreadLocal当中。

2024-06-12 22:28:25 1103

原创 MyBatis 的在使用上的注意事项及其辨析

resultType属性用来指定查询结果集的封装类型,这个名字太长,可以起别名吗?可以。在文件中使用mybatis-config.xml 和 SqlMapper.xml ,logback 文件可以在IDEA中提前创建好模板,以后通过模板创建配置文件。mybatis 核心配置文件的模板内容。

2024-06-02 15:07:46 928

原创 MyBatis中的接口代理机制及其使用

/ 获取到 SalSession 会话,一次会话一个Car car = new Car(null, "999", "奥迪", 3.0, "2000-10-10", "新能源");// 面向接口编程,获取接口的代理对象,也就是接口的实现类,实现类该接口中的方法// 需要注意的是参数的 Xxxmapper.class 和 返回值是保持一致的。// 执行的是该XxxMapper接口中的方法XxxMapper.xml 文件中的namespace必须和接口的全限定名称一致,id必须和接口中方法名一致。

2024-06-02 14:47:33 743

原创 MyBatis 核心配置文件详细内容详解

mybatis-confg.xml ,也就是MyBatis 的核心配置文件,主要配置连接数据库的信息等(**一般一个数据库,对应一个这个MyBatis 的核心配置文件),同样的与之对应的通过mybatis-config.xml 核心配置文件'所创建的对象:SqlSession FactoryBuilder,SqlSessionFactory 也是一个数据库相对应上一个对象。 标签表示:配置环境(在MyBatis 的核心配置文件当中,可以配置多个),注意:一般s。

2024-05-30 14:33:50 1009

原创 MyBatis完成CRUD 详细细节内容

在sql语句中使用 #{map集合的key} 来完成传值,#{} 等同于JDBC中的?,#{}就是占位符。在mybatis当中不能使用?占位符,必须使用#{ }来代替JDBC当中的?#{ }和JDBC当中的?是等效的。#{ } 不可以空着,就算是只有一个传值,也不可以空着,随便写,都不可以空着。pojo 对象的数据表 ORM 映射的 类对象,一定要提供对应的 set 和 get 方法,不然 ,MyBatis 无法通过反射机制获取到相应所需要的信息的。

2024-05-30 11:39:55 343

原创 初始MyBatis ,详细步骤运行第一个MyBatis程序,同时对应步骤MyBatis底层剖析

2. 前沿知识2.1 框架(framework)Java当中常见的框架:框架其实就是对通用代码的封装,被提前写好的一大堆接口和类(供你使用),我们可以在做项目的时候直接引入这些接口和类(引入框架),基于这些现有的接口和类进行开发,可以大大提高开发效率。框架一般都是以 包的形式存在。(jar 包中有 class 文件以及各种配置文件等。)SSM三大框架的学习顺序:MyBatis,Spring,SpringMVC 。因为 MyBatis 框架和后面两个 Spring,SpringMVC 比较的独立开来了,可

2024-05-24 21:22:44 538

原创 Spring6 对 集成MyBatis 开发运用(附有详细的操作步骤)

第一步:准备数据库表使用t_act表(账户表)第二步:IDEA中创建一个模块,并引入依赖mysql驱动mybatismybatis提供的与spring框架集成的依赖德鲁伊连接池junit第三步:基于三层架构实现,所以提前创建好所有的包第四步:编写pojoAccount,属性私有化,提供公开的setter getter和toString。第五步:编写mapper接口AccountMapper接口,定义方法第六步:编写mapper配置文件。

2024-05-24 20:44:57 291

原创 在Spring 当中存在的八大模式

在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。

2024-05-20 22:47:29 765 1

原创 Spring 对 Junit4,Junit5 的支持上的运用

Spring 对 Junit4 的依赖的 jar 包,同时@ContextConfiguration("classpath:spring.xml") // 注意该:spring.xml 文件要一定要在类路径下才行同时注意:该Juit4的@Test 的注解是在:org.junit.Test;包下的Spring 对 Junit5 的依赖的 jar 包,同时@ContextConfiguration("classpath:spring.xml") // 同样一定要是在类路径下。

2024-05-20 22:38:56 899

原创 Spring 对于事务上的应用的详细说明

2. 事务概述什么是事务事务的四个处理过程:事务的四个特性:以银行账户转账为例学习事务,两个账户 act-001 和 act-002 。act-002 账户转账 10000,必须同时成功,或者同时失败,(一个减成功,一个加成功,这两条update 语句必须同时成功,或同时失败。)连接数据库的技术采用Spring 框架的JdbcTemplate.首先我在 当中先配置对应项目模块需要依赖的 jar包。3.1 第一步:准备数据库表com.powernode.bank.pojocom.powernode.b

2024-05-18 21:42:00 1019

原创 Spring 面向切面编程AOP 详细讲解

交叉业务。这些交叉业务几乎是通用的,不管你是做银行账户转账,还是删除用户数据。日志,事务处理,安全,这些都是需要做的。如果在每一个业务处理过程当中,都参杂这些交叉业务第一:交叉业务代码在多个业务流程中反复出现,显然这个交叉业务代码并没有得到充分的复用,并且修改这些交叉业务代码的话,需要修改多处。第二:程序员无法专注核心业务代码的编写,在编写核心业务代码的同时还需要处理这些交叉业务。使用 AOP 可以很轻松的解决以上问题。如下图:可以更好的理解 AOP思想。简单的说AOP:就是将与核心业务。

2024-05-18 21:01:53 598

原创 GoF之代理模式(静态代理+动态代理(JDK动态代理+CGLIB动态代理带有一步一步详细步骤))

第一个作用: 当一个对象需要受到保护的时候,可以考虑使用代理对象去完成某个行为。第二个作用:需要给某个对象的功能进行功能增强的时候,可以考虑找一个代理进行增强。第三个作用:A对象无法和B对象直接交互时,也可以使用代理模式来解决。第一个角色:目标对象(演员)第二个角色:代理对象(替身演员)第三个角色:目标对象和代理对象的公共接口,(只有演员和替身演员具有相同的行为动作,才能不被客户端察觉你是)

2024-05-12 22:10:22 573

原创 Spring6 的JdbcTemplate的JDBC模板类的详细使用说明

JdbcTemplate 是Spring 提供的一个JDBC模板类,是对JDBC的封装,简化JDBC代码,当然,你也可以不用,可以让Spring集成其它的ORM框架,例如:MyBatis,Hibernate 等。其中JDBC关于数据库的连接也是一个重要的内容,想要了解更多的大家可以移步至:✏️✏️✏️ JDBC_ChinaRainbowSea的博客-CSDN博客下面我们正式开始对 JdbcTemplate 上的学习,完成增删改查。这里,我们新建一个模块,方便学习,如下:因为我们这里是Spring6,而Spr

2024-05-12 21:48:02 964 1

原创 Spring IoC注解式开发无敌详细(细节丰富)

注解回顾:Target注解和Retention注解,这两个注解被称为元注解。Target注解用来设置Component注解可以出现的位置,以上代表表示Component注解只能用在类和接口上。Retention注解用来设置Component注解的保持性策略,以上代表Component注解可以被反射机制读取。是Component注解中的一个属性。该属性类型String,属性名是value。注解的存在主要是为了简化XML的配置。Spring6倡导全注解开发。第一步:加入aop的依赖。

2024-05-05 21:45:36 980 1

原创 手写Spring框架

2. 反射机制的回顾我们知道框架一般是由 设计模式+注解+反射 来实现,并进行运用开发的。所以我们要手写 Spring 框架,就需要先来回顾,回顾Java当中的反射机制,这里是简单的回顾反射 。关于反射机制更加详细的内容,大家可以移步至✏️✏️✏️ Java “框架 = 注解 + 反射 + 设计模式” 之 反射详解-CSDN博客 。我们知道,想要调用一个方法,就需要明确知道该方法的四个要素:为了简单的回顾我们的反射机制,下面我们进行一个简单的任务。完成下面的需求下面通过反射机制,获取到为 age 属性值

2024-05-05 20:54:21 463 1

原创 Spring6 当中 Bean 的生命周期的详细解析:有五步,有七步,有十步

Spring 其实就是一个管理Bean对象的工厂。它负责对象的创建,对象的销毁等。所谓的生命周期:简单的来说:就是一个对象从创建开始到最终销毁的整个过程。什么时候创建Bean 对象?创建 Bean 对象的前后会调用什么方法?Bean 对象什么时候销毁?Bean 对象的在销毁前后会调用生命方法?那么我们为什么要知道 Bean 的生命周期呢?其实生命周期的本质是:在哪个时间节点上调用了哪个类当中的哪个方法。我们需要充分的了解在这个生命线当中,都有哪些特殊的时间节点。

2024-04-30 22:26:59 1019

原创 Spring6 当中的 Bean 循环依赖的详细处理方案+源码解析

Bean的循环依赖:A对象中有B属性。B对象中有A属性。这就是循环依赖。我依赖你,你也依赖我。singletion 下的 set 注入下的 Bean 的循环依赖能够被解决。主要原因是:在这个 singleton 单例模式下,在Spring 容器中的 bean 对象是独一无二的对象,是唯一的一个。同志在该 singleton 单例模式下:Spring 对 Bean 的管理主要分为清晰的两个阶段。

2024-04-30 22:05:05 909

空空如也

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

TA关注的人

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