![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 56
96岁对抗java
喜欢上层框架原理、更喜欢底层原理的研究, 同样感兴趣的小伙伴有问题交流, 欢迎评论区或者私信进行讨论。
展开
-
动态SQL之foreach
就是当我们要查询操作的时候我们不知道到底会传输过来多少个查询条件, 比如可能是我们要查询某个数据表中id值为某个集合中的数据的时候, 这个时候随着集合的变化我们的查询出的数据就会随着集合的变化而变化, 这个时候我们就要使用到foreach标签(如下:)原创 2023-02-27 17:53:20 · 1731 阅读 · 0 评论 -
动态sql之if
MyBatis的映射文件中, 前面我们的SQL都是比较简单的, 但是以后有一些时候业务逻辑比较复杂的时候,我们的SQL是动态变化的, 此时在前面的学习中我们的静态SQL就不能满足了。原创 2023-02-27 17:53:52 · 573 阅读 · 0 评论 -
MyBatis的dao层实现之传统方式
名字是可以随便起的, 只是我们一般都是命名为实体类类名 + Dao或者是命名为实体类类名 + Mapper。原创 2023-02-27 17:50:09 · 144 阅读 · 0 评论 -
MyBatis相应API
常用API: SqlSessionFactory build(InputStream inputStream)通过加载MyBatis核心文件的输入流的形式构建一个SqlSessionFactory对象。原创 2023-02-26 20:49:37 · 110 阅读 · 0 评论 -
MyBatis核心配置文件之typeAliases
由于typeAlias标签是用来给某个类起别名的, 一个typeAlias标签只能给一个类起别名, 所以显然我们可以在一个核心配置文件中给多个类起别名, 所以typeAlias是一个单数标签, 它是写在typeAliases复数标签中的。在核心配置文件中configuration标签的子标签的使用顺序是有规定的, 如果不按照顺序编写就会出错…我们的别名是在核心配置文件中起的, 但是真正使用到类型别名的地方则是在映射文件中。一个复数标签中可以有多个对应的单数标签。我们给类起的别名是不区分大小写的。原创 2023-02-26 20:47:36 · 1637 阅读 · 0 评论 -
MyBatis核心配置文件之properties
eg:这种方式维护起来会非常的麻烦, 所以我们就使用我们JDBC中的配置文件的方式来配置, 这样我们如果我们要修改的时候就只用修改配置文件中的数据即可接下来我们来讲解如何使用配置文件的方式来配置连接数据库的驱动等:首先, 我们创建一个配置文件(.properties结尾的文件)我们的配置文件中的数据都是以键值对的形式给出的, 我们的键一般都是要见名知意的, 但是如果是仅仅是见名知意, 可能会出现键名重复的问题, 所以为了区分开重复的键名, 我们可以在键名之前加一个前缀, 前缀就是用来表示我们此原创 2023-02-26 20:48:11 · 891 阅读 · 0 评论 -
MyBatis核心配置文件之environment
Mybatis核心配置文件之environment原创 2023-02-26 20:47:31 · 93 阅读 · 0 评论 -
MyBatis快速入门
我们这里之所以是添加坐标是因为我们使用的是Maven构建的项目, 如果是普通的JavaWeb项目, 那么我们就要使用导入jar包的方式①我们首先要导入JDBC的驱动②然后我们这里是使用MyBatis, 所以就要导入MyBatis的坐标③我们还可能需要测试, 所以我们要导入junit④我们还要判断是否出错, 要生成日志文件, 所以要引入log4j。原创 2023-02-26 20:43:31 · 70 阅读 · 0 评论 -
MyBatis概述
MyBaits是一个优秀的基于Java的持久层框架, 它内部封装了JDBC, 使得开发者只需要关注sql语句本身, 而不需要花费精力去加载驱动, 创建连接, 创建Statement等繁杂的过程MyBatis通过xml或注解的方式将要执行的各种Statement配置起来, 并通过Java对象和Statement中sql的动态参数进行映射生成最终执行的sql语句。原创 2023-02-26 20:41:13 · 76 阅读 · 0 评论 -
Spring事物管理介绍
我们一般是将事物添加到JavaEE三层结果里面的Service层(业务逻辑层), 可以一定程度降低耦合。原创 2023-02-26 20:37:37 · 69 阅读 · 0 评论 -
事物概念
事务是数据库操作的最基本单元, 事务是指逻辑上的一组操作, 这一组操作要么同时成功, 如果有一个失败, 那么所有的操作都会失败。原创 2023-02-26 20:36:21 · 52 阅读 · 0 评论 -
事物概念
事务是数据库操作的最基本单元, 事务是指逻辑上的一组操作, 这一组操作要么同时成功, 如果有一个失败, 那么所有的操作都会失败。原创 2023-02-24 20:08:41 · 66 阅读 · 0 评论 -
AspectJ实现AOP操作之XML方式
【代码】AspectJ实现AOP操作之XML方式。原创 2023-02-24 20:08:55 · 45 阅读 · 0 评论 -
AspectJ实现AOP操作之XML方式
【代码】AspectJ实现AOP操作之XML方式。原创 2023-02-24 20:07:08 · 135 阅读 · 0 评论 -
AOP操作中的问题扩展
使用==@PointCut注解==来定义一个切入点。原创 2023-02-24 20:03:48 · 68 阅读 · 0 评论 -
基于AspectJ实现AOP(注解方式)
/被增强的类(也就是被代理的类) public class User {//被增强的方法(也就是被代理的方法) public void add() {} }原创 2023-02-24 20:02:33 · 284 阅读 · 0 评论 -
AspectJ介绍和切入点表达式
=来进行一个统配, 表示的是当前包以及子包, 比如com.ffyc.spring.Demo类通配就是: ====表示有无参数均可, 有参数时可以是任意类型。①: 可以使用==*==通配, 但是前提是必须有参数。--> 也就是配置切入点的时候使用的。类名和方法名都可以使用通配符==*==返回值可以使用通配符==*==包名可以使用通配符==*==匹配零个或者多个字符。原创 2023-02-24 20:00:47 · 160 阅读 · 0 评论 -
AOP术语
实际增强的逻辑部分称之为: 通知(增强)类中可以被增强的方法就称之为连接点。原创 2023-02-24 19:59:59 · 58 阅读 · 0 评论 -
JDK动态代理实现
总的来讲,每一个proxy代理对象都有一个实现InvocationHandler接口的实现类Handler,这个实现类中的invoke方法就是proxy代理对象的实际调用处理器,在这个invoke方法体中,有所有 被代理对象 的方法逻辑实现和扩展。被代理类的类加载器,方法内部会调用这个类加载器来获取继承Proxy类的子类字节码文件对象Class,加载的同时该子类也实现所有指定的接口。被代理类 的所有实现接口的Class对象,在方法内部会克隆一份加载进Proxy字节码对象中。原创 2023-02-24 19:59:02 · 216 阅读 · 0 评论 -
AOP底层原理
AOP底层是通过动态代理实现的原创 2023-02-24 19:00:42 · 55 阅读 · 0 评论 -
AOP概念
AOP就是面向切面编程, 利用AOP可以对业务逻辑的各个部分进行隔离, 从而使得业务逻辑各部分之间的耦合度降低, 提高程序的可重用性, 同时提高了开发的效率AOP通俗描述: 不通过修改源代码的方式, 在主干功能里面添加新功能这个案例很简单, 就是一个用户的简单登录功能, 原本假如我们这个登录模块的功能就仅仅是对用户输入的账号和密码提交到数据库中进行一个验证, 如果验证成功就返回true, 然后跳转到主界面中Spring框架不仅仅是管理对象, 更多的是对管理对象的功能增强AOP核心原理: 使用动态代理的方式原创 2023-02-24 18:57:44 · 63 阅读 · 0 评论 -
注入存储对象类型的集合类型属性 [XML方式]
Courses是一个自定义类表示课程, 我们先给出这个自定义类//课程名称 public void setCname(String cname) {} }原创 2023-02-21 20:50:27 · 90 阅读 · 0 评论 -
注入集合/数组类型属性[XML方式]
【代码】注入集合/数组类型属性[XML方式]原创 2023-02-21 20:50:47 · 148 阅读 · 0 评论 -
级联赋值 [XML方式]
比如部门和员工之间一个部门中就有很多的员工, 一个员工属于一个部门, 这个时候如果我们在创建员工实体类对象的时候, 我们肯定是有一个属性是部门实体类类型的, 所以也就是我们在创建员工实体对象时要给其中的部门实体类类型的属性赋一个值此时不仅仅是创建一个部门实体对象然后赋值给员工对象的对应属性就可以, 我们在创建员工对象的时候我们要给对应的部门类型属性赋值,原创 2023-02-21 20:48:45 · 167 阅读 · 0 评论 -
注入内部Bean [XML方式]
在Service类中声明一个Dao类类型的成员变量, 在Service类中的方法中我们就能使用Dao类中的方法了。原创 2023-02-21 20:48:11 · 68 阅读 · 0 评论 -
注入外部Bean [XML方式]
在Service类中声明一个Dao类类型的成员变量, 在Service类中的方法中我们就能使用Dao类中的方法了。原创 2023-02-21 20:46:59 · 164 阅读 · 0 评论 -
注入控制和特殊符号[xml方式]
/原创 2023-02-21 20:47:45 · 103 阅读 · 0 评论 -
p名称空间注入 [Bean管理XML方式]
使用p名称空间注入, 可以简化基于xml配置方式。原创 2023-02-21 20:45:45 · 203 阅读 · 0 评论 -
创建对象和注入属性(XML方式)
还有一个name属性, 其功能和id属性是一模一样的, 与id属性不同的是: id属性值中不能有特殊符号, 而name属性值中可以有特殊字符。在Spring配置文件中, 使用bean标签来创建对象, 标签里面添加属性, 就可以实现对象的创建。注入属性就是依赖注入, 简称ID, 是IOC的实现方式之一, 还有一种IOC实现方式是依赖查找。在Spring配置文件中配置对象创建, 配置属性注入(依赖注入)创建类, 定义属性, 创建属性对应的构造方法。创建类, 定义属性和提供对应的set方法。原创 2023-02-21 20:45:32 · 431 阅读 · 0 评论 -
IOC容器底层接口
本篇文章只是简单的介绍, 具体需要详细阅读源码, 后期源码篇文章中将会介绍ApplicationContext, BeanFactory的继承体系, 工作原理等等。原创 2023-02-21 20:43:32 · 92 阅读 · 0 评论 -
IOC原理 [Spring]
IOC , 控制反转, 就是把对象创建和对象之间的调用过程交给Spring进行管理。原创 2023-02-21 20:41:20 · 52 阅读 · 0 评论 -
单调队列
改题目其实说白了就是一个区间求和的问题, 一维数组的区间求和比较简单, 二维数组的区间求和其实还是有一定难度的。因为我们定义的preSum[i]表示的是前i + 1项的前缀和, 那么我们如何用一个差值来表示前2项?原创 2023-02-15 19:56:12 · 239 阅读 · 0 评论 -
Spring框架概述
Spring是轻量级的开源的JavaEE框架这里的轻量级指的是:①Spring框架使用的时候的依赖比价少, 也就是使用的jar包比较少, 并且jar包还比较小②Spring框架在使用时可以单独使用,完全不用依赖于其他的组件Spring可以解决企业应用开发的复杂性。原创 2023-02-15 19:56:07 · 68 阅读 · 0 评论 -
循环双端队列
【代码】循环双端队列。原创 2023-02-15 19:55:15 · 73 阅读 · 0 评论 -
循环队列
这种方式比较简单, 判断队列是否为空, 是否满都是通过size的大小直接判断的。原创 2023-02-15 19:53:35 · 56 阅读 · 0 评论 -
Spring入门案例
下载Spring5打开IDEA工具, 创建一个普通的Java工程导入Spring5相关jar包原创 2023-02-15 19:53:00 · 45 阅读 · 0 评论 -
并查集
package com . ffyc . algorithm . 并查集;//获取并查集分组数目 int getSize();//合并 void union(int p , int q);//判断是否连接 boolean isConnected(int p , int q);原创 2023-02-15 19:53:29 · 78 阅读 · 0 评论 -
位运算Pow(double x , int n)
那么都有哪些位运算?~ 取反& 与|或^ 异或>) 右移 —> 这里因为打不出来>>所以就加了一个()(>>>) 无符号右移这里给大家普及一个小知识, -(负号)x在底层是如何实现的?原创 2023-02-15 19:51:15 · 138 阅读 · 0 评论 -
分治算法
分治法是一个很重要的算法, 字面上的解释是: “分而治之”, 就是把一个复杂的问题分成两个或者更多相同或者相似的子问题, 再把子问题分成更小的子问题, 直到最后子问题可以简单的直接求解, 原问题的解即子问题的解的合并, 这个技巧是很多高效的算法的基础(如: 排序算法(快速排序, 归并排序), 傅里叶变换(快速傅里叶变换) )原创 2023-02-15 19:47:45 · 49 阅读 · 0 评论 -
用栈实现二叉树的前序遍历 [迭代法]
【代码】用栈实现二叉树的前序遍历 [迭代法]原创 2023-02-15 19:48:04 · 370 阅读 · 0 评论