自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(177)
  • 资源 (1)
  • 收藏
  • 关注

原创 MyBatis高级扩展

MyBatis 对插件进行了标准化的设计,并提供了一套可扩展的插件机制。插件可以在用于语句执行过程中进行拦截,并允许通过自定义处理程序来拦截和修改 SQL 语句、映射语句的结果等。(拦截器):定义一个拦截方法intercept,该方法在执行 SQL 语句、执行查询、查询结果的映射时会被调用。Invocation(调用):实际上是对被拦截的方法的封装,封装了和这三个字段。(拦截器链):对所有的拦截器进行管理,包括将所有的 Interceptor 链接成一条链,并在执行 SQL 语句时按顺序调用。

2024-05-28 15:56:23 1109

原创 MyBatis动态语句

经常遇到很多按照很多查询条件进行查询的情况,比如智联招聘的职位搜索等。其中经常出现很多条件不取值的情况,在后台应该如何完成最终的SQL语句呢?动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。

2024-05-28 15:56:09 1202

原创 MyBatis多表映射

setting属性属性含义可选值默认值指定 MyBatis 应如何自动映射列到字段或属性。NONE 表示关闭自动映射;PARTIAL 只会自动映射没有定义嵌套结果映射的字段。FULL 会自动映射任何复杂的结果集(无论是否嵌套)。PARTIAL我们可以将autoMappingBehavior设置为full,进行多表resultMap映射的时候,可以省略符合列和属性命名映射规则(列名=属性名,或者开启驼峰映射也可以自定映射)的result标签!

2024-05-28 15:55:52 637

原创 Mybatis CRUD

定义一个 Mapper 接口UserMapper,并在其中添加 user 表的增、删、改、查方法。

2024-05-28 15:55:40 182

原创 MyBatis基本使用

增删改操作返回的受影响行数:直接使用 int 或 long 类型接收即可查询操作的查询结果我们需要做的是,指定查询的输出数据类型即可!并且插入场景下,实现主键数据回显示!MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成本,让用户能更专注于 SQL 代码。insert– 映射插入语句。update。

2024-05-28 15:55:27 863

原创 Mybatis快速入门

*** 根据员工id查询员工数据方法* @param empId 员工id* @return 员工实体对象-- namespace等于mapper接口类的全限定名,这样实现对应 -->> <!-- namespace等于mapper接口类的全限定名,这样实现对应 --> < mapper namespace = " com.lx.mapper.EmployeeMapper " > <!-- 查询使用 select标签id = 方法名resultType = 返回值类型。

2024-05-28 15:54:59 274

原创 Spring 声明式事务

同时,类级别标记的 @Transactional 注解中设置的事务属性也会延续影响到方法执行时的事务属性。这是因为Spring框架中使用代理模式实现了事务机制,在同一个类中的方法调用并不经过代理,而是通过对象的方法调用,因此@Transactional注解的设置不会被代理捕获,也就不会产生任何事务传播行为的效果。此时这个很可能出问题的程序应该被回滚,撤销它已做的操作,事务结束,把资源让出来,让其他正常程序可以执行。对一个方法来说,离它最近的 @Transactional 注解中的事务属性设置生效。

2024-05-28 15:54:25 796

原创 Spring AOP 环绕通知

环绕通知对应整个 try…finally 结构,包括四种通知的所有功能。

2024-05-27 10:24:21 139

原创 Spring AOP切点表达式语法

AOP切点表达式(Pointcut Expression)是一种用于指定切点的语言,它可以通过定义匹配规则,来选择需要被切入的目标对象。注意:提取切点注解使用@Pointcut(切点表达式) , 需要添加到一个无参数无返回值方法上即可!上面案例,是我们之前编写切点表达式的方式,发现, 所有增强方法的切点表达式相同!建议:将切点表达式统一存储到一个类中进行集中管理和维护!不同类在引用切点,只需要添加类的全限定符+方法名即可!出现了冗余,如果需要切换也不方便统一维护!我们可以将切点提取,在增强上进行引用即可!

2024-05-27 10:00:01 165

原创 Spring AOP 获取切点详细信息

在异常通知中,通过@AfterThrowing注解的throwing属性获取目标方法抛出的异常对象。需要获取方法签名、传入的实参等信息时,可以在通知方法声明JoinPoint类型的形参。注解的returning属性获取目标方法的返回值!

2024-05-24 16:47:02 335

原创 Spring AOP基于注解方式快速开发

【代码】Spring AOP基于注解方式快速开发。

2024-05-24 16:17:13 167

原创 Spring AOP 面向切面编程思想

横切关注点从每个方法中抽取出来的同一类非核心业务。在同一个项目中,我们可以使用多个横切关注点对相关方法进行多个不同方面的增强。这个概念不是语法层面天然存在的,而是根据附加功能的逻辑上的需要:有十个附加功能,就有十个横切关注点。AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处基本相似,比如权限认证、日志、事务、异常等。

2024-05-24 15:38:43 726

原创 Spring AOP 代理模式

二十三种设计模式中的一种,属于结构型模式。它的作用就是通过提供一个代理类,让我们在调用目标方法的时候,不再是直接对目标方法进行调用,而是通过代理类间接调用。让不属于目标方法核心逻辑的代码从目标方法中剥离出来——解耦。调用目标方法时先调用代理对象的方法,减少对目标方法的调用和打扰,同时让附加功能能够集中在一起也有利于统一维护。

2024-05-24 14:20:39 287

原创 Spring 搭建测试环境

好处2:任何需要的bean都可以在测试类中直接享受自动装配。好处1:不需要自己创建IOC容器对象了。

2024-05-24 13:41:36 152

原创 Spring 三种配置方式总结

所有内容写到xml格式配置文件中声明bean通过<bean标签<bean标签包含基本信息(id,class)和属性信息 <property name value / ref引入外部的properties文件可以通过<context:property-placeholderIoC具体容器实现选择ClassPathXmlApplicationContext对象注解负责标记IoC的类和进行属性装配xml文件依然需要,需要通过<context:component-scan标签指定注解范围。

2024-05-24 13:35:31 149

原创 Spring配置类完全注解开发

场景需求:将Druid连接池对象存储到IoC容器需求分析:第三方jar包的类,添加到ioc容器,无法使用@Component等相关注解!因为源码jar包内容为只读模式!xml方式实现-- 引入外部属性文件 --> < context: property-placeholder location = " classpath:jdbc.properties " /> <!

2024-05-24 11:35:56 769

原创 String DI注入注解语法

给 @Autowired 注解设置 required = false 属性表示:能装就装,装不上就不装。但是实际开发时,基本上所有需要装配组件的地方都是必须装配的,用不上这个属性。在成员变量上直接标记@Autowired注解即可,不需要提供setXxx()方法,在项目中的正式用法就是这样。参与自动装配的组件(需要装配、被装配)全部都必须在IoC容器中。与xml进行bean ref引用不同,他不需要有set方法!注意:不区分IoC的方式!同时在各个组件中声明要调用的方法。这是最主要的使用方式!

2024-05-23 17:22:28 927

原创 Spring基于注解方式ioc配置

在我们使用 XML 方式管理 bean 的时候,每个 bean 都有一个唯一标识——id 属性的值,便于在其他地方引用。和 XML 配置文件一样,注解本身并不能执行,注解本身仅仅只是做一个标记,具体的功能是框架检测到注解标记的位置,然后针对这个位置按照注解标记的功能来执行具体操作。Spring 为了知道程序员在哪些地方标记了什么注解,就需要通过扫描的方式,来进行检测。本质上:所有一切的操作都是 Java 代码来完成的,XML 和注解只是告诉框架中的 Java 代码如何执行。情况3:指定扫描组件。

2024-05-23 16:11:25 731

原创 Spring FactoryBean特性和使用

接口是Spring IoC容器实例化逻辑的可插拔性点。用于配置复杂的Bean对象,可以将创建过程存储在的getObject方法!返回此工厂创建的对象的实例。该返回值会被存储到IoC容器!如果此返回单例,则返回true,否则返回false。此方法的默认实现返回true(注意,lombok插件使用,可能影响效果)。Class<?: 返回方法返回的对象类型,如果事先不知道类型,则返回null。

2024-05-23 14:39:30 565

原创 Spring作用域和周期方法配置

我们可以在组件类中定义方法,然后当IoC容器实例化和销毁组件对象的时候进行调用!这两个方法我们成为生命周期方法!类似于Servlet的init/destroy方法,我们可以在周期方法完成初始化和释放资源等工作。具体创建多少个Bean的实例对象,由Bean的作用域Scope属性指定!标签声明Bean,只是将Bean的信息配置给SpringIoC容器!对象内,包含定义的信息(id,class,属性等等)!概念一样,SpringIoC容器可以可以根据。对象反射创建多个Bean对象实例。在IoC容器中,这些。

2024-05-23 14:08:24 302

原创 Spring IOC容器创建和使用

【代码】Spring IOC容器创建和使用。

2024-05-23 12:26:36 271

原创 Spring基于xml的di配置

依赖注入(DI)包含引用类型和基本数据类型,同时注入的方式也有多种!主流的注入方式为setter方法注入和构造函数注入需要特别注意:引用其他bean,使用ref属性。直接注入基本类型值,使用value属性。

2024-05-23 11:24:01 851

原创 Spring基于xml的ioc的配置

当通过构造函数方法创建一个 bean(组件对象) 时,所有普通类都可以由 Spring 使用并与之兼容。也就是说,正在开发的类不需要实现任何特定的接口或以特定的方式进行编码。但是,默认情况下,我们需要一个默认(空)构造函数。这些 Bean 是使用您提供给容器的配置元数据创建的(例如,以 XML。我们学习,如何通过定义XML配置文件,声明组件类信息,交给 Spring 的 IoC 容器进行组件管理!接下来我们讲解下如何定义使用实例工厂方法创建Bean的配置!导入SpringIoC相关依赖。

2024-05-23 10:46:16 434

原创 Spring IoC / DI 实现步骤

Spring IoC 容器管理一个或多个组件。这些 组件是使用你提供给容器的配置元数据(例如,以 XML。构造函数的位置路径是资源字符串地址,允许容器从各种外部资源(如本地文件系统、Java。是一个高级工厂的接口,能够维护不同 bean 及其依赖项的注册表。配置元数据,既是编写交给SpringIoC容器管理组件的信息,配置方式有三种。<bean /> 标签 == 组件信息声明。,您可以检索 bean 的实例。定义的形式)创建的。等)加载配置元数据。

2024-05-23 09:44:54 776

原创 Spring IoC容器和核心概念

Spring IoC 容器,负责实例化、配置和组装 bean(组件)。容器通过读取配置元数据来获取有关要实例化、配置和组装组件的指令。配置元数据以 XML、Java 注解或 Java 代码形式表现。它允许表达组成应用程序的组件以及这些组件之间丰富的相互依赖关系。上图显示了 Spring 容器工作原理的高级视图。应用程序类与配置元数据相结合,您拥有完全配置且可执行的系统或应用程序。IoC容器Spring IoC 容器,负责实例化、配置和组装 bean(组件)核心容器。

2024-05-23 09:30:02 710 1

原创 SpringFramework介绍

(全家桶)广义上的 Spring 泛指以 Spring Framework 为基础的 Spring 技术栈。经过十多年的发展,Spring 已经不再是一个单纯的应用框架,而是逐渐发展成为一个由多个不同子项目(模块)组成的成熟技术,例如 Spring Framework、Spring MVC、SpringBoot、Spring Cloud、Spring Data、Spring Security 等,其中 Spring Framework 是其他子项目的基础。

2024-05-23 09:29:54 721

原创 Maven继承和聚合特性

Maven 继承是指在 Maven 的项目中,让一个项目从另一个项目中继承配置信息的机制。继承可以让我们在多个项目中共享同一配置信息,简化项目的管理和维护工作。Maven 聚合是指将多个项目组织到一个父级项目中,通过触发父工程的构建,统一按顺序触发子工程构建的过程!作用:在父工程中统一管理项目中的依赖信息,进行统一版本管理!通过触发父工程构建命令、引发所有子模块构建!父项目中包含的子项目列表。

2024-05-22 11:33:38 639

原创 Maven核心功能依赖和构建管理

当我们引入一个库或框架时,构建工具(如 Maven、Gradle)会自动解析和加载其所有的直接和间接依赖,确保这些依赖都可用。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题,使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程序或模块中,避免出现版本冲突和依赖缺失等问题。依赖冲突避免出现重复依赖,并且终止依赖传递!项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程,在这个过程中包括编译源代码、链接依赖库、打包和部署等多个步骤。

2024-05-22 11:28:08 879

原创 基于IDEA的Maven工程创建

指示将项目打包为什么类型的文件,idea根据packaging值,识别maven项目类型!packaging 属性为 jar(默认值),代表普通的Java工程,打包以后是.jar结尾的文件。packaging 属性为 war,代表Java的web工程,打包以后.war结尾的文件。packaging 属性为 pom,代表不会打包,用来做继承的父工程。

2024-05-22 11:20:53 1025

原创 Maven介绍、安装和配置

Maven 是一款为 Java 项目构建管理、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。总结:Maven就是一个软件,掌握软件安装、配置、以及基本功能(项目构建、依赖管理)使用就是本课程的主要目标!

2024-05-22 11:15:55 834

原创 Vue3状态管理Pinia

如何实现多个组件之间的数据传递?方式1 组件传参方式2 路由传参方式3 通过pinia状态管理定义共享数据当我们有多个组件共享一个共同的状态(数据源)时,多个视图可能都依赖于同一份状态。来自不同视图的交互也可能需要更改同一份状态。更强的团队协作约定与 Vue DevTools 集成,包括时间轴、组件内部审查和时间旅行调试模块热更新 (HMR)服务端渲染支持Pinia就是一个实现了上述需求的状态管理库,由 Vue 核心团队维护,对 Vue 2 和 Vue 3 都可用。

2024-05-22 11:07:17 375

原创 Vue3数据交互axios

前端中的异步编程技术,类似Java中的多线程+线程结果回调!Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Promise对象。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。

2024-05-22 11:05:30 380

原创 Vue3路由机制router

定义:路由就是根据不同的 URL 地址展示不同的内容或页面。通俗理解:路由就像是一个地图,我们要去不同的地方,需要通过不同的路线进行导航。

2024-05-22 10:55:07 359

原创 Vue3组件开发及组件之间传递数据

组件允许我们将 UI 划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。首先,在父组件中定义需要传递给子组件的值,接着,在父组件的模板中引入子组件,同时在引入子组件的标签中添加 props 属性并为其设置需要传递的值。在 Vue3 中,父组件通过 props 传递给子组件的值是响应式的。也就是说,如果在父组件中的传递的值发生了改变,子组件中的值也会相应地更新。//2.出发父组件对应的方法,调用defineEmites对应的属性。组件化:对js/css/html统一封装,这是VUE中的概念。

2024-05-22 10:04:18 464

原创 Vue3生命周期

每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到 DOM,以及在数据改变时更新 DOM。在此过程中,它也会运行被称为生命周期钩子的函数,让开发者有机会在特定阶段运行自己的代码!周期图解:常见钩子函数。

2024-05-22 09:36:21 232

原创 Vue3数据监听器

计算属性允许我们声明性地计算衍生值。然而在有些情况下,我们需要在状态变化时执行一些“副作用”:例如更改 DOM,或是根据异步操作的结果去修改另一处的状态。//监听reactive响应式数据的所有属性(深度监视,一般不推荐)//immediate:true 深度监视在进入页面时立即执行一次。//也不需要,即时回调设置!//监听reactive响应式数据的指定属性。//直接在内部使用监听属性即可!//deep:true 深度监视。//监听一个ref响应式数据。//监听所有响应式数据。

2024-05-22 09:30:59 424

原创 Vue3计算属性

模板中的表达式虽然方便,但也只能用来做简单的操作。如果在模板中写太多逻辑,会让模板变得臃肿,难以维护。计算属性 ref 也会在模板中自动解包,因此在模板表达式中引用时无需添加。方法期望接收一个 getter 函数,返回值为一个。Vue 的计算属性会自动追踪响应式依赖。来描述依赖响应式状态的复杂逻辑。和其他一般的 ref 类似,你可以通过。我们在这里定义了一个计算属性。// 一个计算属性 ref。计算属性缓存 vs 方法。的绑定都会同时更新。

2024-05-22 09:24:28 840

原创 Vue3条件渲染(v-if、v-show)

v-if条件渲染v-if='表达式'只会在指令的表达式返回真值时才被渲染也可以使用v-else为v-if添加一个“else 区块”。一个v-else元素必须跟在一个v-if元素后面,否则它将不会被识别。

2024-05-22 09:10:59 347

原创 Vue3列表渲染(v-for)

也支持使用可选的第二个参数表示当前项的位置索引。块中可以完整地访问父作用域内的属性和变量。指令基于一个数组来渲染一个列表。//准备购物车数据,设置成响应数据。形式的特殊语法,其中。//计算购物车总金额。

2024-05-22 09:10:38 272

原创 Vue3双向绑定(v-model)

/ 这中写法会将数据变成非响应的,应该是user.username=""

2024-05-22 09:10:22 307

mybatis jar包

mybatis jar包

2024-04-18

mybatis和log4j,jar包

mybatis jar包 log4j jar包 maybatis连接数据库 log4j打印日志文件

2024-04-16

mybatis快速入门jar包

mybatisjar包

2024-04-16

空空如也

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

TA关注的人

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