自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mybatis学习笔记汇总

这是跟着B站尚硅谷的教程学的做的笔记,快一个月了,回来把它汇总一下,顺便温习一遍,好记性不如烂键盘,继续冲冲冲!!!教程链接在这儿:尚硅谷MyBatis实战教程—雷丰阳Mybatis环境搭建–IDEA版Mybatis----IDEA中搭建mybatis环境并测试Mybatis初级Mybatis----全局配置文件 常用标签详解Mybatis----简单实现增删改查Mybatis----自增主键、参数处理、取值、空值处理Mybatis高级Mybatis----返回记录封装List和MapM

2020-09-22 20:22:18 406

原创 目前看到最好的、最深入浅出的Spring教程分享+随堂笔记

9月初开始学习Spring,B站找到的教程都比较片面,无法形成完整的系统性知识,懵懵懂懂的再去看了SpringMVC,跟着敲了个小案例,最终发现知识还是串联不起来,于是乎再去找教程,终于发现了一个宝藏级别的教程,下面分享给大家:BiliBili:孙哥说Spring5Tips:看这个之前,建议大家还是看Mybatis下面开始堆笔记啦!争取4天之内搞完初识SpringSpring AOP编程Spring整合MybatisSSM小案例Spring注解编程...

2020-09-20 17:15:30 1044 1

原创 SpringBoot使用Hibernate拦截器实现时间自动注入

123456789101112131415161718192021222324252627282930313233343536373839数据发布调用流程以App内容发布为例:1、请求:/api/web/product/vno/release/v22、DataReleaseController.releaseData2():3、BrandDataReleaseServiceImpl.release():先校验->d

2022-10-09 15:44:17 698

原创 Springboot:Request method ‘POST‘ not supported

Springboot:Request method 'POST' not supported

2021-12-08 10:23:28 9555

原创 SpringBoot:表单使用REST风格

1、SpringBoot和REST风格当一个请求过来,SpringBoot最先要看的就是----谁能处理这个请求?交由SpringMVC去逐步解析。Spring 4.3后,添加GetMapping/PostMapping/PutMapping/PatchMapping/DeleteMapping注解,以支持REST风格。REST风格被推荐为各个微服务系统之间用于交互的方式 。此风格中,每一个资源都只是对应着一个网址,而一个代表资源网址应该是一个名词,而不存在动词,而简易参数尽量通过网址进行传递。来看一下

2020-12-24 17:23:21 1220 2

原创 深入源码:SpringBoot自动配置原理(版本2.4.1)

自动配置原理(版本2.4.1)一、SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration二、@EnableAutoConfiguration作用∶三、每一个自动配置类进行自动配置四、以HttpEncodingAutoConfiguration为例进行解析配置文件到底能写什么?怎么写?官方文档:配置文件能配置的属性参照自动配置原理∶一、SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration

2020-12-23 21:52:47 635

原创 Spring基础注解、高级注解、多配置文件整合和注入问题 ,真的超详细!!!

Spring基础注解、高级注解、多配置文件整合和注入问题1.Spring基础注解1.1 创建对象相关的注解(Spring2.x)1.1.1 @Component1.1.2 @Service、@Repository、@Controller1.1.3 @Scope1.1.4 @Lazy1.1.5 生命周期注解 @PostConstruct、@PreDestroy1.2 注入相关的注解1.2.1 自定义类型:1.2.1.1@Autowired:1.2.1.2 放置位置:1.2.1.3 问题:1.2.1.4 Jav

2020-09-22 19:56:32 494

原创 从0进行SSM整合,太细啦!!

在学完Spring的事务之后,老师开始讲SSM整合,但是没想到的是,用的MVC框架是Struts2,然就我就把以前的SpringMVC的整合案例拿出来,就当复习一遍了,下面开始SSM整合。SSM整合--SpringMVC1.创建项目和相关文件夹1.1 创建项目1.2 创建包和文件夹2.环境搭建2.1 引入依赖2.2 下载Tomcat服务器:2.3 添加Web框架支持:3.创建数据库表4.编写配置文件(文件名在后面)4.1 数据库连接相关字符串配置文件---**db.properties**4.2 log4

2020-09-22 14:54:28 478

原创 Spring事务开发详解

Spring事务开发详解1.什么是事务1.1 事务概念1.2 事务四大特性 ACID1.3 如何控制事务1.4 事务的核心:AOP编程2.事务开发步骤3.事务属性详解3.1 隔离属性3.2 传播属性3.3 只读属性3.4 超时属性3.5 异常属性(有两种取值配置方式)4.事务属性配置方式4.1 注解方式4.2 配置文件方式1.什么是事务1.1 事务概念事务其实是数据库中的一个概念,它是保证业务操作完整性的一种机制,Spring将其接管并优化,操作更方便1.2 事务四大特性 ACID不懂就百度嘛!嘿

2020-09-21 21:08:37 308

原创 Spring整合Mybatis

建议学了Mybatis后,再跟着老师的视频走,会比较透彻。Spring的配置文件中注意看看注释,可能更好理解。Spring整合Mybatis1.环境搭建1.1 准备jar包1.2 准备配置文件2.准备测试内容2.1 创建SQL表2.2 创建实体类2.3 创建DAO3.测试1.环境搭建1.1 准备jar包在maven的pom文件中添加依赖,注意mysql驱动版本对应问题。 <dependency> <groupId>mysql</g

2020-09-21 20:00:12 144

原创 Spring基于注解的AOP编程

1.五个通知相关注解@Before@AfterReturning@AfterThrowing@After //相当于try-catch-finally中的final,一般用于释放资源@Around对应接口及说明请参考代理引入、Spring动态代理、切入点表达式、切入点函数2.开发步骤原始对象package zyc.stu.Spring5_89_106.Service;public interface UserService { void register(); b

2020-09-21 18:43:20 662

原创 Spring AOP底层实现原理、动态代理实现两种方式、工厂加工对象流程

基于前面的动态代理演示,本文学习记录AOP相关概念和粗略的底层原理实现。本文图片源自视频截图:BiliBili:孙哥说Spring5,一个非常牛的Spring教程。文章目录1.AOP概念1.1 AOP概念1.2 AOP开发步骤2.Spring AOP底层实现原理2.1 两个核心问题 :2.2 JDK实现动态代理和动态字节码技术2.3 JDK的动态代理2.4 Cglib动态代理3.加工对象流程--再看BeanPostProcessor1.AOP概念1.1 AOP概念AOP (Aspect Orie

2020-09-21 17:25:41 476

原创 代理引入、Spring动态代理、切入点表达式、切入点函数

代理引入、Spring动态代理、切入点表达式、切入点函数1.代理引入1.1 为什么需要代理设计模式1.2 代理设计模式1.3 静态代理存在的问题2.Spring动态代理2.1 五种增强接口2.2 接口对应的注解2.3 动态代理编程(只测试两个接口)2.3.1 MethodBeforeAdvice测试: 还是使用上面的Service类和接口2.3.2 MethodInterceptor测试:2.4动态代理细节分析:3.切入点表达式3.1 切入点表达式剖析3.2 方法切入点3.3 类切入点3.4 包切入点4.切

2020-09-21 14:56:50 247

原创 Spring对象的生命周期、配置文件参数化、自定义类型转换器、后置处理Bean

Spring对象的生命周期、配置文件参数化、自定义类型转换器、后置处理Bean1.对象的生命周期什么是对象的生命周期?生命周期的三个阶段:创建阶段初始化阶段销毁阶段测试2.配置文件参数化3.自定义类型转换器开发步骤:细节:思考4.后置处理beanSpring创建对象步骤两个重写的方法实战用法细节1.对象的生命周期什么是对象的生命周期? 对象 创建-存活-消亡 整个过程。 以前由GC回收,现在由Spring管理,有助于使用好Spring为我们创建的对象。生命周期的三个阶段:

2020-09-21 10:35:30 211

原创 Spring控制反转、依赖注入、复杂对象、控制对象的创建次数

Spring控制反转、依赖注入1.IOC、DI、复杂对象 相关概念创建复杂对象的三种方式1. FactoryBean接口2.实例工厂1.IOC、DI、复杂对象 相关概念控制反转 IOC控制反转:把对于成员变量赋值的控制权,从代码中反转(转移)到Spring工厂和配置文件中完成好处:解耦合底层实现:工厂设计模式依赖注入 DI 注入:通过Spring的工厂及配置文件,为对象(bean,组件)的成员变量赋值(get set) 依赖注入:当一个类需要另一个类的时候,就意味着依赖,,一旦出现

2020-09-20 21:19:51 270 1

原创 Spring基于配置文件的注入及简化

注入详解1.注入初体验2.set注入JDK内置类型:自定义类型:不做测试3.构造注入构造方法发生重载时4.基于set注入的简化1.注入初体验拿入门的Person作为测试bean,只有 id 和 name 两个属性步骤:提供Setter、Getter 在配置文件bean标签中,新增property标签,再在内部中添加value标签<bean id="person" class="zyc.stu.bean.Person"> <property name="id">

2020-09-20 19:48:06 171

原创 Spring工厂获取bean、配置文件bean标签、日志整合

接上一篇笔记,本篇记一记Spring工厂获取bean以及配置文件bean标签的细节问题。Spring工厂获取bean相关方法context.getBean("person"):根据bean标签的id属性获取context.getBean("person",Person.class):获取时指定类型,不用强制转换context.getBean(Person.class):直接使用类的类型,但是在xml文件中只能存在一个同类型的bean,不然就会报异常(为了测试,配置了person1):expecte

2020-09-20 19:04:49 335

原创 第一个Spring程序

环境搭建:!!!maven依赖库查询地址 !!!使用maven管理工程,建一个maven项目,在pom文件的< dependencies>标签中添加依赖项,目前最新版本是5.2.8,别怕,鼓起勇气用最新就完事儿了(做开发就算了,稳一点老哥hah),添加这个依赖项,Spring会自动引入四个核心 jar 包:bean、context、expression、core,并不只是一个context包<!-- https://mvnrepository.com/artifact/org.sp

2020-09-20 17:13:24 304

原创 Mybatis----动态SQL四大标签

四大标签ifchoose(when,other)trim(where,set):where封装查询条件,set封装修改条件,都是和if结合使用foreach下面来一一介绍并测试,测试内容是基于上一篇的JavaBean和数据库Mybatis----resultMap详解及应用(一)一、if标签结合where标签:需求:查询员工:携带了哪个字段,查询条件就带上这个字段的值。mapper接口中的方法和对应的映射规则:public List<Employee> getEmpsByC

2020-08-25 21:35:05 459

原创 Mybatis----resultMap详解及应用(二)

接上一篇博客,这篇记录一下collection标签——定义关联集合类型。对于association一对一,collection则是一对多。一、定义关联集合类型collection场景二:查询部门的时候将该部门下所有的员工信息也查询出来DepartmentMapper接口文件中声明方法:public Department getDeptByIdPlus(Integer id);DepartmentMapper.xml文件中映射规则: collection定义关联集合类型的属性的封装规则

2020-08-25 19:19:07 155

原创 Mybatis----resultMap详解及应用(一)

接前面的博客,今天分享一下学习resultMap的笔记(几天不看,差点忘完了,回来再看看,沉淀一下!!!且看下面这个小案例:数据库中的列名为last_name,而JavaBean中的属性名为lastName,如果不在全局配置文件settings中开启驼峰命名法映射规则,last Name属性就封装不上了,如下所示,打印出来的lastName显示为null。Employee{id=1, lastName='null', email='[email protected]', gender='1', dept=nul

2020-08-25 17:31:03 277

原创 Mybatis----返回记录封装List和Map

下面所有测试中的getSqlSessionFactory()均是提取出来的方法,在搭建环境的文章中能找到。一、封装List如果返回的是一个集合,要写集合中的元素类型。mapper接口中的方法:public List<Employee> getEmpsByLastNameLike(String lastName);mapper.xml映射文件:<!--public List<Employee> getEmpsByLastNameLike(String lastName

2020-08-25 12:09:45 1116

原创 Mybatis----自增主键、参数处理、取值、空值处理

在上一篇增删改查的基础上继续:获取自增主键需要数据库支持自增主键MySQL支持自增主键键值的获取,mybatis也是利用jdbc中statement.getGeneratedKey(),useGeneratedKeys=“true”:使用自增主键获取主键值策略keyProperty=“id”:指定对应的主键属性:也就是mybatis获取到主键值以后,将这个值封装给javaBean的哪个属性<!--public int addEmp(Employee e);--><!--

2020-08-25 11:19:10 445

原创 Mybatis----简单实现增删改查

上一篇有环境搭建和运行,在其基础上在学习增删改,冲冲冲~先创建数据库,并添加一些数据CREATE TABLE `tbl_employee` ( `id` int(11) NOT NULL AUTO_INCREMENT, `last_name` varchar(255) DEFAULT NULL, `gender` char(1) DEFAULT NULL, `email` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`))创建JavaB

2020-08-25 09:29:46 171

原创 Mybatis----全局配置文件 常用标签详解

1、引入DTD约束DTD文件更够更好的约束 xml文档,并且还有智能提示,提高写代码的效率。在IDEA中引入比较方便,在文档开头写明即可,在Eclipse中还要指明 dtd 文件的路径,百度一下即可找到设置方法。PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">接下来的配置可以没有,但顺序必须严格按照如下的顺序properties-->set

2020-08-24 20:55:01 430

原创 Mybatis----IDEA中搭建mybatis环境并测试

想学一个工具,最好的方法就是先让它在你的机器上跑起来,下面分享一下IDEA中使用搭建mybatis环境并测试1、准备工作从官网mybatis-3-releases下载mybatis的jar包(同文件夹内含官方文档PDF)和源码测试用的数据库是MySQL,所以再下载MySQL的连接器jar包mysql-connector-java,这个可以在MySQL的官网找到,注意电脑上装的数据库版本,然后选择适合自己版本的jar包。2、创建数据库创建一个简易的测试数据库tbl_employeeCREATE

2020-08-24 17:20:15 506

原创 Java笔记----反射及动态代理

一、获取Class对象的四种方法 //方式一:调用运行时类的属性: .class Class class1 = Person.class; //方式二:通过运行时类的对象,调用getClass() Person p = new Person("hah", 12); Class class2 = p.getClass(); //方式三:调用Class的静态方法,forName(String classPath)

2020-08-14 18:13:15 154

原创 Java笔记----TCP、UDP、URL示例

在Java中使用InetAddress类代表IP本地回路地址: 127.0.0.1 对应着: localhost如何实例化InetAddress:两个方法:getByName(String host) 、getLocalHost()两个常用方法: getHostName() / getHostAddress()端口号:正在计算机上运行的进程。要求:不同的进程有不同的端口号范围:被规定为一个16位的整数0~65535。一、TCP步骤:客户端:创建客户端InetAddres.

2020-08-14 15:57:49 144

原创 Java笔记----File类和IO流(二)

对于图片视频等文件用前面的字符流Reader和Writer是不行的,得用下面的字节流。一、FileInputStream和FileOutputStream四步走套路,直接上代码@Test public void test(){ FileInputStream fileinputStream = null; FileOutputStream fileOutputStream = null; try { //1.创建File类

2020-08-14 15:16:44 116

原创 Java笔记----File类和IO流(一)

一、File类及其常用方法File 类的使用:File类的一个对象,代表一个文件或一个文件目录File类声明在java.io包下File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、 文件大小等方法,并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用I0流来完成。后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的”终点". /* 1.如何创建File类的实例File(String filePath) File

2020-08-14 14:48:16 135

原创 泛型通配符 与 有限制的泛型通配符

一、泛型通配符子父类关系:List<String> list1 = new ArrayList<>()List<Object> list2 = new ArrayList<>()list1 = list2//编译错误List<?> list = null;list = list1;list = list2;结论:虽然泛型参数A B之间有子父类类关系,但G< A>和G< B>之间却没有子父类关系。G&

2020-08-10 18:01:27 142

原创 泛型练手题

声明一个泛型类GenericExercise< T>,内部提供一个私有的Map<String,T>,实现增、删、改、查、遍历User.javaimport java.util.Objects;public class User { private int id; private int age; private String name; public int getId() { return id; }

2020-08-10 16:44:05 98

原创 Java笔记----Map接口(非源码向)

初学者,先看结论,再用源码去印证结论,更高效。冲冲冲!!!一、Map接口及其实现类特点:Map:双列数据,存储key-value对的数据 —类似于高中的函数: y = f(x)HashMap:作为Map的主要实现类;线程不安全的,效率高;存储null的key和valueLInkedHashMap:继承自HashMap。保证在遍历的元素的时候,可以按照添加的顺序实现遍历,因为在原有的HashMap底层结构基础上,添加了一对指针,指向前一个和后一个元素,对于频繁的遍历操作,此类执行效率高于HashM

2020-08-10 16:02:00 74

原创 Java笔记----Set接口

Set接口特点及其实现类:1.Set接口: 存储无序的、不可重复的数据HashSet:作为Set接口的主要实现类;线程不安全的;可以存储null值LinkedHashSet: 作为HashSet的子类; 遍历其内部数据时,可以按照添加的顺序遍历对于频繁遍历的操作,LinkedHashSet效率比HashSet高。Set.TreeSet:可以按照添加对象的指定属性,进行排序。2.可用方法:Set接口作为Collection接口的子接口,并没有额外定义方法,使用的都是Collection中声明过的

2020-08-10 11:23:27 190

原创 Java笔记----List接口

List接口及其实现类特点:存储有序的、可重复的数据。ArrayList :jdk1.2,查询操作效率高,根据脚标找;作为List接口的主要实现类;线程不安全的,效率高;底层使用Object[] elementData存储。LinkedList :jdk1.2,对于频繁的插入、删除操作,使用此类效率比ArrayList高;底层使用双向链表存储。Vector :jdk1.0,List的古老实现类,线程安全的,效率低;底层使用Object[] elementData存储。源码分析结论:ArrayL

2020-08-10 10:37:24 116

原创 Java笔记----集合概览

偷了两天懒,把前面的回顾一下,顺便记一记,嘿嘿。一、集合框架概述1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器。此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt, .jpg, .avi,数据库中2.1 数组在存储多个数据方面的特点: .一旦初始化以后,其长度就确定了.数组一旦定义好,数组的类型也就确定了。我们也就只能操作指定类型的数据了。比如: String[] arr;int[] arr1;0bject[] arr2;2.2 数组在存储多个数据

2020-08-10 10:04:30 93

原创 Java笔记----枚举类

CSDN–在线笔记本,我又来了,记录学习过程中的点点滴滴!!!JKD 5.0以前—自定义枚举类以前的真的和类没啥区别,直接上代码,感觉没啥好说的。public class EnumTest { public static void main(String[] args) { System.out.println(Season.SPRING.toString()); }}/*自定义枚举类 */class Season{ //1.声明Season对象的属性

2020-08-05 23:50:13 103

原创 Java比较器----Comparable和Comparator

Java对象正常情况下,只能进行比较:== 或 !=,不能使用 > or < ,但是在开发中,可能需要对多个对象排序,言外之意,就需要比较对象的大小。如何实现?使用两个接口中任意一个:Comparable 或 ComparatorComparable接口----自然排序像String、包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个对象大小的方式像String、包装类等重写了compareTo方法以后,进行了从小到大的排列重写compar

2020-08-05 23:25:19 136

原创 String应用----求两个字符串的最大子串

求两个字符串的最大子串,利用好String类中的方法可以轻松解决这个问题。思路:删减短串去和长串依次对比,利用String中的方法可以得到子串,但其中最重要的是怎样才能不漏掉子串。下面采用给子串“瘦身”来逐个对比。第一次:直接看长串是否包含短串,是则直接返回短串;第二次:短串长度-1,这时有两个子串,每个子串都去和长串对比,看是否包含;第三次:短串长度-2,这时有三个子串-。。。。。。。外层循环控制短串长度,内层循环控制所有子串对比涉及方法:length(),contains(),subS

2020-08-05 23:00:34 795

原创 Java笔记--String入门、StringBuffer、StringBuilder

随手记,冲冲冲!!!1.String入门知识String声明为final的, 不可被继承String实现了Serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示String可以比较大小String内部定义了final char[] value用于存储字符串数据String:代表不可变的字符序列。简称:不可变性。体现:当对字符事重新赋值时,需要重写指定内存区域赋值,不能使用原有的value进行赋值当对现有的字符串进行连接操作时,也需要重新指定内存区

2020-08-05 00:12:11 82

空空如也

空空如也

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

TA关注的人

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